데이터베이스 & 관계형 데이터베이스 기본 개념 - 2

2024. 3. 7. 22:27· CS/DB
728x90
RDBMS

RDBMS(Relational DataBase Management System, 관계형 데이터베이스 관리 시스템)

  • 데이터를 테이블의 형태로 저장하고 관리하는 시스템
  • 테이블은 행(row)과 열(column)으로 구성되어 있고, 각 행은 고유한 식별자를 가지고 있다.
  • 열은 데이터의 속성을 나타내며, 같은 열에 속한 데이터는 동일한 데이터 타입을 가진다.
  • RDBMS는 테이블 간 관계를 정의할 수 있으며, 이를 통해 데이터 무결성과 일관성을 보장할 수 있다.

RDB(관계형 데이터베이스)

  • 관계형 데이터베이스의 모든 테이블에는 행을 식별하기 위한 기본 키라는 속성이 있다.
  • 그리고, 외래 키를 통해 다른 기존 테이블의 기본 키를 참조하면서 테이블 간의 관계를 만들 수 있다.

 

관계형 데이터베이스는 테이블을 조인하여, 테이블 간의 관계를 설정할 수 있어, 여러 데이터 간의 관계를 쉽게 이해하고, 필요한 정보를 가공해서 얻을 수 있다.

 

관계형 데이터베이스의 장점

  • 직관적인 데이터 표현 방법을 제공하고, 데이터에 쉽게 접근할 수 있어서 관계형 데이터베이스는 대량의 구조화된 데이터를 관리해야 하는 조직에서 많이 사용한다.
  • 유연성
    • 데이터베이스 구조를 변경해도, 기존 애플리케이션에 영향을 주지 않는다.
  • 사용 편의성
    • SQL 이용
  • ACID 규정 준수(원자성, 일관성, 고립성, 지속성) -> 추후 학습
  • 공동 작업
  • 데이터베이스 정규화 -> 추후 학습

 

비관계형 데이터베이스

  • 관계형 데이터베이스와 데이터를 저장하고 구성하는 방법이 다르다.
  • 비관계형 데이터베이스는 규칙 기반의 테이블 형식이 아니라, 데이터를 연결되지 않은 개별 파일로 저장한다.
  • 관계형 데이터베이스에 비해 유연한 데이터 모델을 따르므로, 자주 변경되는 데이터를 저장하거나, 다양한 유형의 데이터를 처리하는 응용 프로그램에 적합하다.

 


 

 

릴레이션 스키마와 릴레이션 인스턴스

릴레이션 스키마

  • Relation + Schema? -> 뭔가 관계를 정의한다? 관계 구조를 정의한다? 이런 느낌
  • 릴레이션 스키마는 테이블의 구조를 정의한다.
    • 테이블의 이름, 각 열(속성)의 이름, 데이터 형식 등
  • 릴레이션 스키마는 테이블의 설계도라고 볼 수 있다.
  • 예를 들어 학생 테이블의 릴레이션 스키마는 "학번", "이름", "성별" 등의 열의 이름 / 데이터 형식(정수, 문자 등)이다

 

릴레이션 인스턴스

  • Relation + Instance -> Instance? -> 실제 저장된 데이터들을 의미한다?
  • 릴레이션 인스턴스는 실제로 테이블에 저장된 데이터의 집합을 의미한다.
    • 테이블에 삽입된 행(레코드)들의 집합
  • 예를 들어 학생 테이블의 릴레이션 인스턴스는 각 학생의 정보를 포함한 행들로 구성될 것이다. (12312123, 캉테, 남자) 이런 것들

 

정리하자면, 릴레이션 스키마는 테이블의 구조를 정의하고, 릴레이션 인스턴스는 실제로 저장된 데이터를 나타낸다고 할 수 있다.

 

 


 

릴레이션의 차수와 카디널리티

 

 

잠깐! 자꾸 릴레이션, 릴레이션 거리는데 여기서 사용하는 릴레이션의 정확한 의미는 뭘까?

  • 관계형 데이터베이스에서 릴레이션이란, 하나의 개체에 관한 데이터를 2차원 테이블 구조로 저장한 것을 의미한다.
  • 즉 릴레이션은 테이블과 비슷한 의미라고 생각하면 된다.
  • 일반적으로 릴레이션과 테이블은 거의 동의어로 사용한다.
  • 차이점이라면, 릴레이션은 약간 이론적으로 사용하는 느낌이고, 테이블은 실제 관계형 데이터베이스 시스템에서 사용하는 느낌이다.

 

릴레이션 차수

  • 릴레이션의 차수란 릴레이션에 포함된 열(속성)의 수를 의미한다.
  • 예를 들어, 학생 테이블의 열(속성)이 학번, 이름, 성별 세 가지라면 이 학생 테이블의 릴레이션 차수는 3이다.

 

릴레이션 카디널리티

  • 릴레이션 카디널리티는 릴레이션에 포함된 행(레코드)의 수를 의미한다.
  • 예를 들어 학생 테이블에 100명의 학생에 관한 정보가 있다면, 이 학생 테이블의 릴레이션 카디널리티는 100이다.

 

결론적으로 릴레이션의 차수와 카디널리티는 테이블의 구조와 크기에 대한 정보를 제공한다.

 


 

키(Key)

키

  • 데이터베이스 테이블에서 각 행을 고유하게 식별하는 데사 사용되는 필드 혹은 필드 집합을 의미한다.
  • 데이터베이스에서 데이터를 식별하고 검색하는데 중요한 역할을 한다.
  • 슈퍼키, 후보키, 기본키, 대리키, 외래 키 등 여러가지 종류가 있다.
    • 이러한 키들은 최소성, 유일성에 따라 구분할 수 있다.

 

유일성

  • 하나의 키 값으로 튜플을 유일하게 식별할 수 있는 성질을 의미한다.
  • 릴레이션에서 각각의 튜플은 유일해야 한다.
  • 예를 들어 어떤 릴레이션에 (주민등록번호, 이름, 나이, 키, 성별) 속성이 존재한다고 해보자.
    • 이때, 이름, 나이, 키, 성별은 중복될 수 있으므로 유일성을 만족하지 못한다.
    • 하지만 주민등록번호는 각각의 튜플마다 유일하므로, 유일성을 만족하는 성질이다.

최소성

  • 키를 구성하는 속성 중 가장 최소로 필요한 속성들로만 키를 구성하는 성질을 의미한다.
  • 키를 구성하고 있는 속성들이 진짜로 각 튜플을 구분하는데 꼭 필요한 최소한의 속성들로만 구성되어 있는지를 의미한다.
  • 예를 들어 어떤 릴레이션에 (주민등록번호, 이름, 나이, 키, 성별) 속성이 존재한다고 해보자.
    • 이 때, 이 릴레이션에서 (주민등록번호, 이름)이 키로 지정되어 있다면 이 키로 모든 튜플을 구분할 수는 있다.
    • 하지만, 위 예시에서 봤듯이 주민등록번호만으로도 튜플을 구분할 수 있다. (주민등록번호가 똑같은 사람은 없으니까)
    • 그렇기 때문에 (주민등록번호, 이름) 키는 최소성을 만족하지 못한다.
    • (주민등록번호) 키는 최소성을 만족한다.

 


 

키의 종류

 

키

 

슈퍼 키

  • 유일성을 만족하는 키를 의미한다.
  • 예를 들어 위 예시에서 (주민등록번호 + 이름) 같은 경우
  • 최소성은 만족하지 못한다.

후보 키

  • 유일성과 최소성 모두를 만족하는 키를 의미한다.
  • 예를 들어 위 예시에서 주민등록번호 같은 경우
  • 기본 키가 될 수 있는 후보

기본 키(PK)

  • 후보 키 중, 튜플을 구분하기 위해 선택된 키.
  • NULL 값이 들어갈 수없고, 기본 키로 선택된 속성에는 동일한 값을 가질 수 없다.
    • 동일한 기본 키를 가지는 튜플이 한 테이블 내에 존재할 수 없다.

대체 키

  • 후보 키 중 기본 키로 선택되지 않은 키

외래 키(FK)

  • 다른 릴레이션의 기본 키를 참조하는 속성이다.
  • 테이블 간의 관계를 나타내기 위해 사용된다.

 

 

 

  • 여기서 중요한 키를 골라보자면, 기본 키와 외래 키라고 할 수 있겠다.
  • 기본 키와 외래키의 조합을 통해 테이블의 관계를 사용자가 원하는 대로 설정하고 데이터베이스에서 원하는 데이터를 추출할 수 있다.
  • 기본 키와 외래 키는 데이터 무결성을 유지하고, 관계형 데이터베이스에서 데이터의 일관성을 보장하는 데 핵심적인 역할을 한다.

 


 

무결성 제약 조건

 

무결성(Integrity)이 뭔데?

  • 데이터의 정확성 또는 유효성을 보장하는 것을 의미한다.
  • 데이터베이스의 무결성은 데이터가 올바르고 일관되게 유지되며, 예상대로 동작함을 보장한다.
  • 데이터베이스에서 데이터의 품질을 보장하는 핵심적 요소

 

1. 도메인 무결성 제약 조건

  • 각 열에 저장된 데이터가 도메인 또는 데이터 형식에 적합해야 한다.
  • 여기서 도메인이란, 특정 열에 포함될 수 있는 값들의 집합을 의미한다.
    • 예를 들어, 나이를 저장하는 열의 도메인은 양의 정수의 집합이다.
    • 성별을 저장하는 열의 도메인은 남, 여 2가지다.

2. 개체 무결성 제약 조건

  • 여기서 개체란, 데이터의 집합을 의미한다.
  • 기본 키를 통해 각 행을 고유하게 식별해야 함을 보장해야 한다.
  • 기본 키 값은 중복되면 안되고, NULL 값이면 안된다.

3. 참조 무결성 제약 조건

  • 관계형 데이터베이스에서 테이블 간의 관계가 일관성을 유지해야 한다.
  • 릴레이션 R2의 외래 키가 릴레이션 R1의 기본 키를 참조할 때, 아래 두 조건 중 하나가 만족되어야 한다.
    • 외래 키의 값은 R1의 어떤 튜플의 기본 키 값과 같다.
    • 외래 키의 값은 NULL일 수 있다.

 

테이블 제약 조건

무결성 제약 조건 역할
NOT NULL NULL을 허용하지 않는다.
UNIQUE 중복된 값이 허용되지 않고, 항상 유일한 값을 갖는다.
PRIMARY KEY(PK) NOT NULL + UNIQUE
FOREIGN KEY(FK) 기본 키를 참조하는 컬럼 or 컬럼들의 집합
CHECK 저장 가능한 데이터 값의 범위와 조건을 지정해서 가능한 값만을 허용한다.

 


참고

 

관계형 데이터베이스(RDBMS)란 무엇인가요?  |  Google Cloud

관계형 데이터베이스의 작동 방식, 관계형 데이터를 사용하여 조직 데이터를 저장하는 경우의 이점, 비관계형 데이터베이스의 비교에 대해 알아봅니다.

cloud.google.com

 

 

[DB] 📚 데이터베이스 키(KEY) 종류 🕵️ 정리

Key의 종류 슈퍼 키(Super Key): 유일성을 만족하는 키. 예를 들면, {학번 + 이름}, {주민등록번호 + 학번} 복합 키(Composite Key): 2개 이상의 속성(attribute)를 사용한 키. 후보 키(Candidate key): 유일성과 최소

inpa.tistory.com

 

 

관계 데이터 모델 요약

1. 관계 데이터 모델의 개념과 기본 용어 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델 중 하나다. 관계 데이터 모델은 하나의 개체에대한 데이터를 릴레이션 하나에 담아 데이터

terms.naver.com

 

728x90

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

데이터베이스 & 관계형 데이터베이스 기본 개념 - 1  (0) 2024.03.07
'CS/DB' 카테고리의 다른 글
  • 데이터베이스 & 관계형 데이터베이스 기본 개념 - 1
happenundo
happenundo
happenundo
2023~ 개발블로그
happenundo
전체
오늘
어제
  • 분류 전체보기 (207)
    • TIL (3)
    • 알고리즘 (188)
      • 프로그래머스 (47)
      • 백준 (69)
      • 파이썬 문법 (11)
      • 이것이 코딩테스트다 (46)
      • 알고리즘 노트 (6)
      • SQL (8)
    • Spring (4)
      • Spring 입문 (2)
      • 개인 프로젝트 (1)
      • 인텔리제이 (1)
    • CS (8)
      • DB (2)
      • 네트워크 (1)
      • 그외 (5)
    • ~2022 (1)
    • etc (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • dfs
  • 동적프로그래밍
  • 다익스트라
  • sql
  • 프로그래머스
  • 플로이드워셜
  • BinarySearch
  • 알고리즘
  • 백준
  • 우선순위큐
  • 큐
  • 스택
  • BFS
  • 백트래킹
  • 이진탐색
  • distinct
  • CS
  • 파이썬
  • 구현
  • 괄호변환
  • DP
  • 그리디
  • 이것이코딩테스트다
  • deepcopy
  • 이코테
  • 다이나믹프로그래밍
  • 최단거리
  • 재귀
  • 완전탐색
  • 정렬

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
happenundo
데이터베이스 & 관계형 데이터베이스 기본 개념 - 2
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.