IT 프로그래밍/데이터베이스

[데이터베이스] 유형 및 특징

기술1 2025. 3. 11. 18:50

계층형 데이터베이스

데이터가 트리 구조로 구성

 

반복적인 부모 - 자식 관계로 표현되며 부모 레코드는 여러 자식 레코드를 소유함 

 

하지만 일대일 혹은 일대다 관계가 무너지면 변경이 어려우며 중복이 발생하기 쉬운 점, 상하 종속관계이기 때문에 이후 프로세스 변경이 어려운 점 등 단점으로 사용되고 있습니다. XML, 파일시스템 등에서 사용됩니다. 

 

네트워크형 데이터베이스

Node와 Set Structure로 구성

 

MEMBER 노드는 반드시 OWNER 노드와 연결되어야 하며, OWNER 노드는 하나 이상의 MEMBER 노드에 연결될 수 있습니다. MEMBER 노드는 OWNER 노드 없이 존재할 수 없습니다.

 

단점

일대다 혹은 다대다로 표현할 수 있지만 종속성의 문제가 발생합니다. 데이터베이스에 구조에 대한 높은 지식이 필요로하며 구조 변경또한 어렵습니다. 

 

Key-Value 데이터베이스

키와 Value로 구성된 데이터베이스로 일대일 대응해서 데이터를 저장하는 구조입니다. 

 

레코드를 검색하기 위해서 키를 사용하며 딕셔너리, 해시 등 연관 배열의 저장, 관리, 검색을 위해 설계된 패러다임입니다. 

 

이는 데이터 중복이 발생하여 비정형 데이터의 저장에 적합합니다. 

 

특징

스키마 없이 작동하며 비정형 데이터를 쉽게 저장할 수 있습니다. 

 

 

NoSQL 유형

키-값 데이터베이스

-키값 형태로 저장하여 수평확장 쉬움

-값 내용 쿼리 불가

 

Document 데이터베이스

-키-도큐먼트 형태

-값이 계층적 형태 저장

 

컬럼 데이터베이스

-키에 해당하는 값에 각기 다른 스키마 사용 가능

-대용량 데이터 압축 등 뛰어남

 

그래프 데이터베이스

-데이터 노드 표현, 노드 관계를 엣지로 표현

-sns나 네트워크 다이어그램에 사용

 

 

관계형 데이터베이스

가장 많이 사용되는 데이터베이스로 하나 이상의 열과 행 테이블로 저장되며 정형된 데이터에 적합합니다. 서로 다른 데이터 구조의 연관성 파악 쉽게 가능 

 

관계 데이터 모델

Relation

행과 열로 구성된 테이블로 Relationship은 테이블과의 관계 

 

릴레이션 스키마

스키마는 관계 데이터베이스의 릴레이션 구성과 속성이 어떤 정보를 가지고 있는지에 대한 기본 구조 

 

첫 행은 헤더이며 각 데이터의 특징을 나타냄, 데이터 타입 등 정보를 가지고 있음

각 열은 속성이며 속성은 각 이름을 가지고 있음

 

도메인은 속성의 값이 무엇인지 정의

차수는 릴레이션이 몇 개의 속성을 가지는지 나타냄 

 

릴레이션 인스턴스

인스턴스는 릴레이션 스키마에 저장된 데이터 집합

릴레이션에서 한 행을 튜플이라고 나타냄

-튜플은 인스턴스의 각 행

-튜플의 속성값은 스키마에 정의된 도메인 값

-튜플 속성의 개수는 스키마의 차수와 동일

-릴레이션 내 모든 튜플은 서로 중복되면 안됨 

-릴레이션 저장된 튜플의 수를 cardinality라고 함

 

릴레이션 통용 용어 파일 시스템
릴레이션 테이블 파일
스키마 내포 헤더
인스턴스 외연 데이터
튜플 레코드
속성 필드

 

속성은 단일 값으로 구성이 됩니다. 

 

관계 데이터 모델

-2차원 테이블 형태인 릴레이션으로 표현

-제약조건과 관계 연산을 위한 관계대수를 정의

-제약조건은 각 릴레이션에 저장된 데이터 값이 가져야 하는 제약

-관계 데이터 모델을 시스템으로 구성한 것이 관계 데이터베이스

 

 관계 데이터베이스

식별한다는 의미염이며 관계 데이터베이스에서 릴레이션에 튜플을 식별할 때 사용 어떠한 행을 구분할 때 사용 키는 릴레이션을 맺는데 사용됩니다. 

 

슈퍼키

튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성 집합 , 유일하게 식별할 수 있는 값이면 슈퍼키 가능, 슢러키는 포함하지 않아도 되는 속성을 포함할 수 있음 

 

-튜플을 식별할 수 있는 최소한의 속성 집합

-키를 구성하는 속성이 많으면 관계 표현 복잡 

 

후보키

튜플이 유일하게 식별할 수 있는 속성의 최소 집합, 효율성 측면에서 중요, 슈퍼키에서 없어도 되는 속상을 포함하면 후보키가 아닙니다. "후보키는 이름과 주민등록번호 중 주민등록번호만 가능"

 

기본키

여러 후보키 중 하나를 선정 대표로 삼는 키, 후보키가 한개라면 그 키를 사용해야 하겠지만 여러 키라면 릴레이션 특성을 반영하여 하나 선택, 

 

기본키 제약조건

-튜플 식별할 수 있는 고유한 값이어야 함

-.NULL 값 허용하지 않음

-키 값 변동 발생하지 않음 

 

대리키

-기본키가 보안을 요하거나, 여러 개의 속성으로 구성되어 복잡하거나 마땅한 기본키가 없을 때 일련번호 같은 가상의 속성 만들어 기본키로 사용 

-소프트웨어에서 임시로 생성하는 값, 사용자가 직관적으로 그 값 의미 알 수는 없음

 

대체키

기본키로 선정되지 않은 후보키

 

외래키

-다른 릴레이션의 기본키를 참조하는 속성

-관게 데이터 모델 특징인 릴레이션 간의 관계를 표현

-외래키를 성립하기 위해선 참조와 참조되는 양쪽 릴레이션 도메인 동일해야

-릴레이션 기본키 값 변경되면 참조하는 외래키 값도 변경

-다른 릴레이션이 아닌 자기 자신을 참조할 수도 있음