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
'CS > DB' 카테고리의 다른 글
데이터베이스 & 관계형 데이터베이스 기본 개념 - 1 (0) | 2024.03.07 |
---|
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
'CS > DB' 카테고리의 다른 글
데이터베이스 & 관계형 데이터베이스 기본 개념 - 1 (0) | 2024.03.07 |
---|