데이터베이스 용어정리

미키오·2024년 8월 12일
2
post-thumbnail

0. 들어가며

사실 그동안 프로젝트들을 하며 ERD 부터 데이터베이스 구조 및 설계 과정에 참여할 수 있는 기회들이 많았는데 프런트엔드 개발 및 디자인을 겸업하며 DB는 든든한 우리 백엔드 개발자들한테 맡기고 다른 부분에 더 집중했었다. 그러다가 최근에 정보처리기사 필기 시험을 준비하면서 제 3과목, 데이터베이스 구축 부분을 공부하게 되었고 이어서 SQLD 시험도 접수를 했는데 이러한 공부 과정에서 기초적인 부분에 대해 많이 약하다는 것을 깨달았다. 또한 앞으로도 프로젝트를 진행할때 소통이 용이하게 되기 위해, 해당 프로덕트에 대한 이해를 깊이 하기 위해서라도 DB 용어정리는 꼭 필요하다는 것을 느꼈다.

1. 용어정리

RDM (Relation Data Model)

RDM은 관계 데이터 모델로 실세계 데이터를 행과 열로 구성된 테이블 형태로 구성된 데이터 모델이다. 다음은 관계 데이터 모델의 구성요소인 릴레이션, 튜플, 속성, 카디널리티, 차수, 스키마, 인스턴스, 식별자, 도메인에 관한 설명이다.

Relation

통상적으로 Relation과 table이란 용어를 구분하지 않고 사용하기도 하지만 좀 더 정확하게 들어가보자면, Relation이란 table 중 database에서 사용되기 위한 조건을 갖춘 행(Row)와 열(Column)으로 구성된 2차원 테이블을 의미한다.

관계형 데이터 모델의 릴레이션은 모든 속성 값은 원자 값을 갖고, 한 릴레이션에 포함된 튜플은 모두 상이하다. 또한 한 릴레이션에 포함된 튜플 사이에는 순서가 없다.

Relation의 제약조건
1. table의 cell은 단일 값을 갖는다.
2. 어떤 두개의 row도 동일하지 않다. (튜플의 유일성)

Tuple

릴레이션의 행(Row)에 해당하는 요소

Attribute

릴레이션의 행(Column)에 해당하는 요소

Cardinality

튜플(Row)의 수 -> 행의 수

Degree

애트리뷰트(Column)의 수 -> 열의 수

Schema

DB의 구조, 제약조건 등의 정보를 담고 있는 기본적 구조

Instance

정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합

Identifier

여러 개의 집합체를 담고 있는 관계형 데이터베이스에서 각각의 구분할 수 있는 논리적인 개념

Domain

하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합
ex) 성별 -> 남자, 여자

데이터베이스 무결성

데이터베이스 무결성(Database Integrity)이란..

  • DB에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 성질
  • 데이터의 무결성은 주로 데이터에 적용되는 연산에 제한을 두어 유지되며 데이터베이스 관리 시스템(DBMS)의 중요한 기능이다.
  • 무결성은 권한이 있는 사용자로부터 데이터베이스를 보호한다.

이러한 데이터베이스 무결성의 종류로는 개체 무결성, 참조 무결성, 속성 무결성, 사용자 무결성, 키 무결성 등이 있다.

(1) 개체 무결성

한 엔터티에서 같은 기본 키 (PK)를 가질 수 없거나, 기본 키 (PK)의 속성이 NULL을 허용할 수 없는 제약조건이다. 주요 기법으로는 기본 키(Primary Key)와 유니크 인덱스 (Unique Index)가 있다.

(2) 참조 무결성

외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키 값이나 NULL이어야 하는 제약조건이다. 주요 기법으로는 외래 키(Foreign Key)가 있다.

(3) 속성 무결성

속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야 하는 제약조건이다. 주요 기법으로는 체크(CHECK), NULL/ NOT NULL, 기본값(DEFAULT)가 있다.

(4) 사용자 무결성

사용자의 의미적 요구사항을 준수해야 하는 제약 조건이다. 주요 기법으로는 트리거(Trigger), 사용자 정의 데이터 타입(User Defined Data Type)이 있다.

(5) 키 무결성

한 릴레이션에 같은 키 값을 가진 튜플들을 허용할 수 없는 제약조건이다. 주요 기법으로는 유니크(unique)가 있다.

Key 🔑

키는 데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성이다. 이러한 키의 특성으로는 식별자에 의해 엔터티 타입 내에 모든 엔터티들이 유일하게 구분되는 유일성과 최소한의 속성으로 식별자를 구성하게 되는 최소성이 있다.

키(key)의 종류

기본 키 (Primary Key)

  • 후보 키 중에서 선택한 main key
  • 테이블의 각 튜플들을 고유하게 식별하는 칼럼 (유일성)
  • 후보키 중에서 엔터티를 대표할 수 있는 키
  • Null 값을 가질 수 없음
  • 중복된 값을 가질 수 없고 table 당 1개만 지정해야 함

대체 키 (Alternate Key)

  • 후보 키 중에서 기본 키로 선택되지 않은 키
  • 여러 개의 후보키 중에서 기본키를 선정하고 남은 키

후보 키 (Candidate Key)

  • 테이블에서 각 튜플들을 구별하는데 기준이 되는 칼럼
  • 유일성과 최소성을 만족하는 키
  • 기본 키와 대체 키를 합친 키

슈퍼 키 (Super Key)

  • 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키

외래 키 (Foreign Key)

  • 타 테이블의 기본키 필드를 가리키는 것으로 참조무결성을 확인하기 위해 사용되는 키
  • 테이블 간의 참조 데이터 무결성을 위한 제약 조건
  • 한 릴레이션의 칼럼이 다른 릴레이션의 기본 키로 이용되는 키

2. 면접질문

Primary Key와 Foreign Key에 대해서 설명해주세요.

기본 키 (Primary Key)는 후보 키 중에 엔터티를 대표할 수 있는 키로 각 행을 구분하는 유일한 열을 의미한다. 따라서 기본 키는 무조건 있어야 되며 Null 값을 가질 수 없다. 또한 중복된 값을 가질 수 없고 기본 키는 table 당 1개만 지정해야 한다. 외래 키 (Foreign Key)는 한 테이블의 열이 다른 테이블의 기본 키를 참조하여 두 테이블 간의 관계를 만들어 주는 역할을 한다. 외래 키 값은 참조된 테이블의 기본 키 값 중 하나와 일치해야 하는 참조 무결성을 지니고 있으며, Primary Key와는 달리 참조하는 테이블의 특정 행과의 관계가 없는 경우 Null값을 가질 수 있다. 또한 같은 외래 키 값을 여러 행에서 사용할 수 있다. 예를 들어, 여러 사원이 같은 직급에 속할 수 있으므로 직급 ID는 사언 테이블에서 외래 키로 중복될 수 있다.

Candidate Key와 Alternate Key에 대해서 설명해주세요.

Candidate key는 table을 구성하는 column들 중에서 최소성과 유일성을 만족하는 column 또는 column의 집합이다. 다시 말해 해당 column들을 Primary key로 사용할 수 있음을 함의한다. Alternate key는 Candidate key의 부분 집합으로 Primary key를 제외한 나머지 Candidate key를 말한다. 대체키 혹은 보조키라고도 불린다.

Composite Key에 대해 설명해주세요.

Composite Key란 table에서 각 row를 식별할 수 있는 두 개 이상의 Column으로 구성된 Candidate key를 말한다.

이제 이 개념들을 가지고 본격적으로 SQL 및 데이터베이스 공부에 들어가보자 :D

📚 Bibliography

https://www.youtube.com/watch?v=QB_GYdHUHmA&t=633s (홍쌤의 데이터랩)
https://youtu.be/gmMaH5mMJ9M?si=StQC0hldzLeypt1z (슈퍼SQL 한종구쌤)
https://product.kyobobook.co.kr/detail/S000208952547 (2024 수제비 정보처리기사 필기)

profile
교육 전공 개발자 💻

0개의 댓글