ShovelingLife
A Game Programmer
ShovelingLife
전체 방문자
오늘
어제
  • 분류 전체보기 (1066)
    • 그래픽스 (57)
      • 공통 (19)
      • 수학 물리 (22)
      • OpenGL & Vulkan (1)
      • DirectX (14)
    • 게임엔진 (179)
      • Unreal (69)
      • Unity (99)
      • Cocos2D-X (3)
      • 개인 플젝 (8)
    • 코딩테스트 (221)
      • 공통 (7)
      • 프로그래머스 (22)
      • 백준 (162)
      • LeetCode (19)
      • HackerRank (2)
      • 코딩테스트 알고리즘 (8)
    • CS (235)
      • 공통 (21)
      • 네트워크 (44)
      • OS & 하드웨어 (55)
      • 자료구조 & 알고리즘 (98)
      • 디자인패턴 (6)
      • UML (4)
      • 데이터베이스 (7)
    • 프로그래밍 언어 (346)
      • C++ (167)
      • C# (88)
      • Java (9)
      • Python (33)
      • SQL (30)
      • JavaScript (8)
      • React (7)
    • 그 외 (9)
      • Math (5)
      • 일상 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Source Code 좌측 상단에 복사 버튼 추가 완료
  • 언리얼 엔진 C++ 빌드시간 단축 꿀팁
  • 게임 업계 코딩테스트 관련
  • 1인칭 시점으로 써내려가는 글들

인기 글

태그

  • SQL
  • C
  • 알고리즘
  • 포인터
  • 그래픽스
  • 파이썬
  • 프로그래머스
  • 오블완
  • 클래스
  • 함수
  • 언리얼
  • c#
  • Unity
  • 유니티
  • 백준
  • string
  • C++
  • 티스토리챌린지
  • 문자열
  • 배열

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShovelingLife

A Game Programmer

프로그래밍 언어/SQL

[데이터베이스] 용어 정리 - 릴레이션, 어트리뷰트, 튜플, 도메인, 차수, 카디널리티, 스키마

2024. 5. 27. 15:05

릴레이션

관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위이다. 결국, 릴레이션은 DB 테이블이다. 흔히 개발을 할 때 DB 설계를 하게 되는데 ERD (Entity Relationship Diagram) 아래와 같이 구성한다. 그래서 이 네모칸 하나하나가 결국 릴레이션이다.

특징

  • 한 릴레이션에는 똑같은 튜플 (Tuple)이 포함될 수 없으므로 릴레이션에 포함된 튜플들은 모두 상이하다.
  • 한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
  • 튜플들의 삽입, 삭제 등의 작업으로 인해 릴레이션은 시간에 따라 변한다.
  • 릴레이션 스키마를 구성하는 속성들 간의 순서는 중요하지 않다.
  • 속성의 유일한 식별을 위해 속성의 명칭은 유일해야 하지만, 속성을 구성하는 값은 동일한 값이 있을 수 있다.
  • 릴레이션을 구성하는 튜플을 유일하게 식별하기 위해 속성들의 부분집합 키 (Key)로 설정한다.
  • 속성의 값은 논리적으로 더 이상 쪼갤 수 없는 원자 값만을 저장한다.

속성 (attribute, 어트리뷰트)

하나의 릴레이션은 현실 세계의 어떤 개체 (entity)를 표현하고 저장하는데 사용된다. 이때 개체는 사물이 될 수도 추상적인 개념이 될 수도 있다. 

 

속성은 내가 저장하고 싶은 개체의 항목들이다. 예를 들어, 내가 쇼핑몰을 운영하고 있다고 생각하자.

그럴 때 쇼핑몰 운영을 위해 고객의 이름, 고객 고유 번호, 전화 번호, 집 주소 등이 필요하다 따라서 고객의 이름, 고객 고유 번호, 전화 번호, 집 주소 등이 속성이 되고 아래와 같이 테이블을 만들 수 있다.


결국 하나의 열은 하나의 속성 정보를 표시한다. 속성 또한 고유한 이름을 가지고 있어 동일 릴레이션 내에서는 같은 이름의 속성이 존재할 수 없다.

차수 (degree)

한 릴레이션 안에 있는 어트리뷰트 수를 차수라고 한다. 따라서, 유효한 릴레이션의 최소 차수는 1이다, 그렇기 때문에 모든 릴레이션은 적어도 하나 이상의 어트리뷰트를 갖고 있고 위의 쇼핑몰 고객 테이블에서 차수는 4 임을 알 수 있다.

튜플 (tuple, 레코드)

릴레이션의 각 행을 레코드라고 한다, 레코드를 더 공식적으로 튜플이라고 부른다.

카디널리티 (Cardinality)

카디널리티는 릴레이션 튜플의 개수이다, 따라서 아직 데이터가 삽입되지 않은 테이블의 경우 카디널리티는 차수와 다르게 0의 값을 가질 수 있다. 또한 카디널리티는 시간에 지남에 따라 값이 계속해서 변화한다.

도메인 (domain)

도메인은 릴레이션에 포함된 속성들이 각각 가질 수 있는 값들의 집합이라 할 수 있다. 예를 들어 "안경 착용의 유무"라는 속성이 있을 때 이 속성이 가질 수 있는 값은 "유" 혹은 "무"일 것이다. 이 집합 즉 도메인의 이름을 'A'라고 칭하자.

그럼 '안경 착용의 유무'라는 속성은 A라는 도메인에 있는 값만 가질 수 있다, 도메인의 이름은 속성 이름과 같을 수도 있고 다를 수도 있다. 또 하나의 도메인을 여러 속성에서 공유할 수도 있다.

스키마 (schema)

스키마는 데이터 베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. 스키마는 데이터 베이스를 구성하는데 데이터 개체 (Entity), 속성 (Attribute), 관계 (Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다. 그리고 스키마는 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눠진다.

논리  모델 vs 물리 모델

 

 

[Database] 데이터베이스 용어 - 릴레이션, 어트리뷰트, 튜플, 도메인, 차수, 카디널리티, 스키마 | Hoyeon (hoyeonkim795.github.io)

저작자표시 (새창열림)

'프로그래밍 언어 > SQL' 카테고리의 다른 글

[DB] 트랜잭션 (Transaction) 4가지 특성  (0) 2024.07.15
[데이터베이스] 스키마란? 개념 스키마, 내부 스키마, 외부 스키마  (1) 2024.05.27
[SQL] 자료형  (0) 2024.04.30
[SQL] 데이터베이스 키(KEY) 종류  (0) 2023.12.29
[SQL] DATETIME 원하는 유형으로 변경 (YYMMDD)  (0) 2023.12.29
    '프로그래밍 언어/SQL' 카테고리의 다른 글
    • [DB] 트랜잭션 (Transaction) 4가지 특성
    • [데이터베이스] 스키마란? 개념 스키마, 내부 스키마, 외부 스키마
    • [SQL] 자료형
    • [SQL] 데이터베이스 키(KEY) 종류
    ShovelingLife
    ShovelingLife
    Main skill stack => Unity C# / Unreal C++ Studying Front / BackEnd, Java Python

    티스토리툴바