WEB/HTML이론

데이터베이스 도메인: 엔티티, 속성, 도메인

찐망고 2024. 8. 6. 12:46

 

안녕하세요 찐망고 입니다.

오늘은 데이터베이스 도메인 관련 포스팅을 해볼까 하는데요.

인터넷 주소의 도메인이 아니라, 데이터베이스에서 사용되는 도메인에 대해 설명드릴게요.

 

데이터베이스 도메인은 주로 다양한 데이터베이스 시스템에서 사용됩니다.

  • 회사 내부 시스템: 직원 정보, 급여, 재고 관리 시스템 등에서 사용돼요.
    예를 들어, 직원의 나이, 이름, 급여, 입사 날짜 등을 저장할 때 각 속성마다 올바른 형식과 범위를 정해두죠.
  • 웹 애플리케이션: 웹사이트나 앱에서 사용자 정보를 관리할 때 사용돼요.
    예를 들어, 회원 가입 시 이름, 나이, 이메일 주소 등을 입력받을 때 올바른 형식으로 입력되도록 도와줘요.
  • 정부 및 공공기관 데이터베이스: 주민등록 시스템, 세금 신고 시스템 등에서 정확하고 일관된 데이터를 저장하기 위해 사용됩니다.
  • 병원 및 의료 시스템: 환자의 의료 기록, 예약 정보 등을 저장할 때 사용돼요.
    예를 들어, 환자의 나이, 성별, 진료 기록 등을 기록할 때 정확한 데이터를 입력하도록 하는 데 도움을 줘요.
  • 전자 상거래 사이트: 제품 정보, 주문 내역, 고객 정보 등을 저장할 때 사용됩니다.
    예를 들어, 제품 가격은 숫자만 허용하고, 이메일 주소는 이메일 형식만 허용하도록 도메인을 설정할 수 있어요.

 

기본적인 개념부터 시작해 볼게요

 

  1. 엔티티(Entity)
    • 업무에 필요한 데이터를 저장하고 관리하는 테이블(table)을 뜻해요. 예를 들어, 직원 정보를 관리하는 테이블이 엔티티가 될 수 있죠.
    • ex)  "학생 정보" 테이블은 학생들의 이름, 학번, 전공 등을 저장하는 엔티티가 될 수 있어요.
  2. 속성(Attribute)
    • 엔티티의 한 부분으로, 테이블(집)에 방(column)이 있고 그 방에 저장되는 데이터의 규칙을 정의해요. 예를 들어, '이름'이나 '나이' 같은 것이 속성이에요.
    • ex)  "학생 정보" 테이블의 속성은 '이름', '학번', '전공' 등이 될 수 있겠죠?
  3. 도메인(Domain)
    • 속성의 값, 타입, 제약사항 등에 대한 범위를 의미해요. 예를 들어, 주민등록번호는 길이가 정해져 있거나, 나이는 0부터 120까지의 숫자만 허용된다든지 하는 것들이죠.
    • ex) '학번'속성은 숫자만 포함해야 하고, '이름'속성은 글자만 포함해야 하는 것처럼요

 

각 개념에 대한 간단한 SQL 코드 예시를 볼게요

 

엔티티(Entity)와 속성(Attribute) 

-- 학생 정보 테이블 생성
CREATE TABLE Student (
    StudentID INT PRIMARY KEY,     -- 학생 ID (속성)
    Name VARCHAR(50),              -- 이름 (속성)
    Major VARCHAR(50),             -- 전공 (속성)
    BirthDate DATE                 -- 생년월일 (속성)
);

 

학생 정보를 저장하는 테이블을 만드는 예시입니다.

 

도메인(Domain)

-- 성별 도메인 설정
CREATE DOMAIN GenderType AS CHAR(1)
CHECK (VALUE IN ('M', 'F'));

-- 테이블 생성 시 도메인 사용
CREATE TABLE Employee (
    EmployeeID INT PRIMARY KEY,    -- 직원 ID (속성)
    Name VARCHAR(50),              -- 이름 (속성)
    Gender GenderType,             -- 성별 (속성, 도메인 사용)
    BirthDate DATE                 -- 생년월일 (속성)
);

 

'성별' 속성의 값이 'M'이나 'F'만 허용되도록 도메인을 정의하고,

이를 사용하여 직원 정보를 저장하는 테이블을 만드는 예시입니다.

 

데이터 무결성 유지 

-- 테이블 생성 시 제약 조건 추가
CREATE TABLE Product (
    ProductID INT PRIMARY KEY,     -- 제품 ID (속성)
    Name VARCHAR(100),             -- 제품 이름 (속성)
    Price DECIMAL(10, 2),          -- 가격 (속성)
    StockQuantity INT CHECK (StockQuantity >= 0) -- 재고 수량 (속성, 음수 불가)
);

 

제품 정보를 저장하는 테이블을 만들 때, 재고 수량이 음수가 될 수 없도록 제약 조건을 추가한 예시입니다.

 

 

비유로 이해하기 쉽게 설명해 볼게요

 

여기서 데이터를 사람, 테이블을 사람이 사는 집(데이터가 저장되는 공간)으로 생각해 보세요.

데이터베이스는 여러 집이 있는 땅이라 볼 수 있어요. 이 땅 위에 여러 집(테이블)이  있을 수 있고,

각 집에는 다양한 사람들이(데이터) 살 수 있어요.

 

 

테이블과 칼럼

테이블 설명

 

테이블은 엑셀의 시트처럼, 여러 데이터가 모여 있는 표라고 생각하면 쉬워요.

예를 들어, 엑셀에서 '번호', '아이디', '이름' 같은 칸이 각각 컬럼(column )이에요. 이 컬럼들이 모여 하나의 테이블을 이루죠.

 

 

 

도메인의 역할

도메인은 속성에 들어갈 값들을 관리하는 규칙이에요.

예를 들어, 주민등록번호나 휴대폰 번호처럼 길이가 정해져 있는 경우,

각 속성에 들어갈 값의 길이나 형태에 제약을 두어야 해요.

틀린 데이터를 넣지 않도록 도와주는 거죠. 숫자만 허용된다고 정해두면 글자로 잘못 입력하는 것도 막을 수 있을 거고요.

성별을 기록할 때 도 '남'과 '여'만 허용하도록 하면,

'남자'나 '여자'같은 다른 표현이 들어가지 않아서 데이터가 일관되게 유지되죠

 

결과적으론 도메인은 이미 정해져 있는 값들의 범위를 지정하는 것을 의미해요.

이런 제약은 데이터베이스 공간을 효율적으로 사용하고, 데이터의 정확성과 일관성을 유지하는 데 도움을 줍니다.

 

 

 

 

아 SQLD 같은 시험에서는 테이블을 엔티티, 컬럼을 속성이라고 부릅니다.