정보처리기사/데이터베이스 구축
데이터베이스의 개요 3
RangA
2023. 5. 25. 18:48
03. 데이터베이스의 종류
01. 데이터베이스의 종류
1) 파일 시스템
- 파일의 이름을 결정하고, 저장이나 검색을 위하여 논리적으로 어디에 위치시켜야 하는지 등을 지정하고 관리하는 데이터베이스 전 단계의 데이터 관리 방식
2) HDBMS(Hierarchical DBMS)
1. HDBMS의 개념
- 계층형 데이터 모델은 트리 형태의 구조
- 데이터를 종속적인 관계(상하 관계)로 계층화하여 관리하는 데이터베이스
- 데이터에 대한 접근 속도가 빠르지만, 종속적인 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기가 어려움
- 속성들의 관계를 묶어 레코드로, 레코드들의 관계를 링크로 표현
- 한 레코드는 여러 개의 레코드를 포함
- 모든 링크 관계는 1:N 관계
- HDBMS의 제품에는 IMS, System2000 등이 있음
2. HDBMS의 장단점
- 간단한 구조이므로 구현이 용이함
- 접근 속도가 빠름
- 변화되는 프로그램에 대한 적응성이 낮음
- 하나의 테이블이 부모 노드에 종속되어 있기 때문에 다른 테이블과 조인이나 다른 연산에 의해 새로운 테이블을 만들 수 있는 재사용성이나 유연성이 떨어진다는 의미
- 삽입과 삭제의 어려움이 있음
- M:N 관계를 직접 표현할 수 없음
3) NDBMS(Network DBMS)
1. NDBMS의 개념
- 네트워크 데이터 모델은 네트워크(망) 형태의 구조
- 데이터의 구조를 네트워크 형태로 논리적으로 표현한 데이터 모델
- 트리 구조나 계층형 데이터베이스보다는 유연하지만 설계가 복잡한 단점이 있음
- 개체는 레코드로 변환하여 정점(Vertex)으로 표현됨
- 레코드의 관계는 1:1, 1:N, N:1, N:M으로 표현할 수 있음
- 오너(Owner) - 멤버(Member) 관계로 표현됨
- 1:N 관계에서 1을 오너, N을 멤버라고 함
- 관계는 한쪽 방향으로 함수적 종속 관계(화살표)로 표현됨
- NDBMS의 제품에는 IDS, TOTAL, IDMS 등이 있음
2. NDBMS의 장단점
- 데이터 간의 연계성이 뛰어남
- 계층형 데이터베이스보다는 유연함
- 설계가 복잡하여 비용이 많이 듦
- 데이터의 종속성 문제를 해결하지 못함
4) RDBMS(Relational DBMS)
1. RDBMS의 개념
- 관계 데이터 모델은 테이블 구조
- 가장 보편화된 데이터베이스 관리 시스템
- 테이블을 이용하여 데이터 상호 간의 관계를 표현함
- 데이터를 저장하는 테이블 일부를 다른 테이블과 상하 관계로 표시하여 상관 관계를 정리함
- 변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이함
- 관계형 데이터 모델은 종합적으로 단순한 데이터 구조
- 사용자에게 가장 뛰어난 논리적 구조를 지원함
- 기존의 계층형 또는 네트워크형이 레코드를 연결하는 방식이었다면 관계형 데이터 모델은 2차원 형태인 테이블로 관계를 맺는 개념
2. RDBMS의 제품
- Oracle
- 미국 Oracle사에서 개발한 유료 데이터베이스 관리 시스템
- Linux, UNIX, Windows 모두를 지원하며 대형 시스템에서 많이 사용
- SQL Server
- Microsoft사에서 개발한 관계형 데이터베이스 시스템
- Microsoft사의 개발 언어인 C# 등과 가장 잘 호환됨
- MySQL
- 썬 마이크로시스템에서 소유했던 관계형 데이터베이스 시스템이었으나 Oracle에서 인수함
- Linux, UNIX, Windows에서 모두 사용이 가능하고 오픈소스 기반으로 개발
- MariaDB
- MySQL 출신 개발자가 만든 데이터베이스로 MySQL과 완벽히 호환됨
3. 상용 DBMS와 오픈소스 기반 DBMS
- 상용 DBMS
- 특정 회사에서 유료로 판매하는 시스템
- 유지보수와 지원이 원활함
- Oracle, SQL Server, DB2, Mirrosoft Access, Teradata 등이 있음
- 오픈소스 기반 DBMS
- 오픈소스 라이선스 정책을 준용하는 범위 내에서 사용이 자유로움
- 최근 사용 비중이 증가하고 있음
- MySQL, PostgreSQL, Mongo DB, Redis, Elasticsearch 등이 있음
4. RDBMS의 장단점
- 업무 변화에 따른 적응 능력, 유지보수성, 높은 생산성, 프로그램 개발 용이성이 좋음
- 시스템의 부하가 커서 수행 속도가 느림
02. 범용 DMBS의 종류
1) 범용 DBMS
- 관리하는 데이터의 형태 및 관리 방식에 따라 관계형 데이터베이스, 문서 저장 시스템, 그래프 데이터베이스, Key-Value 스토어 등으로 구분
- 약 300여 개 이상의 데이터베이스 관리 시스템이 나와 있으나, 범용적으로 광범위하게 쓰이는 DBMS는 약 10 ~ 20개
2) 범용 DBMS 종류 및 특징
1. 관계형 DBMS
- 테이블의 구조(스키마)를 정의하고 테이블 간의 관계를 정의하여 데이터를 관리
- 가장 광범위하게 사용
- 비 관계형 부분까지 확장하여 관리 범위를 넓힌 형태의 관계형 DBMS가 출시되고 있음
- Oracle, MySQL, MS-SQL Server, PostgreSQL, DB2, Maria DB 등이 있음
2. 문서 저장 DBMS(Document store DMBS)
- 관계형 DBMS와는 달리 스키마 구조가 필요 없음
- 일관된 구조가 필요 없음
- 컴럼은 하나 이상의 값을 가질 수 있음
- Client 단에서 후 처리가 필요함
- Mongo DB, Amazon Dynamo DB, Couchbase, MS Azure cosmos DB 등이 있음
3. 그래프 DBMS(Graph DBMS)
- Node(정점)와 Edge(간선)로 특화되어 있음
- 노드 간 관계를 구조화하여 저장함
- Neo4j, MS Azure cosmos DB, Orient DB, Arango DB 등이 있음
4. 키 값 DBMS(Key-Value DBMS)
- 가장 간단한 형태의 DBMS
- 임베디드 시스템과 같은 간단한 시스템에 적합함
- Redis, Amazon Dynamo DB, Memcached 등이 있음
03. RDMBS 모델링
1) RDBMS의 기본 용어
- 속성(Attribute)
- 개체 정보의 특성에 대한 이름
- 프로그래밍 언어에서 기억 장소 이름인 변수명에 해당함
- 파일 시스템에서 레코드의 필드에 해당함
- 각 속성은 유일한 값(원자 값)을 갖고 있어야 함
- 한 릴레이션을 구성하는 애트리뷰트 사이에는 순서가 없음
- 도메인(Domain)
- 한 속성에 입력되는 실제 원자 값들의 범위
- 하나의 속성이 가질 수 있는 원자 값들의 집합
- 하나의 속성을 2byte 정수형으로 선언했다면 해당 속성의 도메인은 -32768 ~ 32767 사이의 값
- 튜플(Tuple)
- 속성들에 실제 입력된 값들의 집합
- 하나의 행, 하나의 줄에 해당되는 값
- 파일 시스템에서 레코드에 해당함
- 릴레이션(Relation)
- 데이터 간에 나타내는 테이블 자체
- 한 개 이상의 속성들 집합으로 이루어짐
- 릴레이션 스키마와 릴레이션 어커런스가 결합된 명칭
- 릴레이션 스키마(Relation Schema)
- 하나 이상의 속성을 합쳐 정의하는 이름
- 릴레이션 어커런스(Relation Occurrence)
- 실제 입력된 튜플들의 집합으로 시간에 따라 변화됨
- 차수(Degree)
- 하나의 릴레이션에서 정의된 속성의 개수
- 레코드의 필드 수
- 카디널리티(Cardinality, 기수)
- 하나의 릴레이션에 형성된 튜플의 개수
- 레코드의 수를 의미
- 널(NULL)
- 속성 값이 비어 있는 상태
- 숫자 0과 공백 문자는 속성 값에 입력된 데이터로 NULL이 아님
2) 릴레이션의 특징
- 튜플의 유일성
- 입력되는 모든 튜플은 중복된 튜플이 존재하지 않음
- 튜플의 무순서
- 입력되는 모든 튜플은 순서적으로 입력되지 않고 상황에 따라 순서 없이 입력됨
- 속성의 원자성
- 속성으로 입력되는 도메인 값은 분해될 수 없는 형태로 입력되어야 함
- 속성의 무순서
- 속성 간의 논리적인 순서는 의미가 없음
- 속성 이름의 유일성
- 속성 이름은 중복되어서는 안됨
3) RDBMS의 키
- 후보키(Candidate Key)
- 하나의 릴레이션에 있는 모든 튜플에 대해 유일성과 최소성을 모두 만족시켜야 함
- 유일성은 모든 튜플을 유일하게 구분할 수 있는 성질이고, 최소성은 가장 작은 개수의 속성으로 구성될 수 있는가를 나타내는 성질
- 튜플에서 식별할 수 있는 후보키는 두 개 이상의 속성으로 만들어질 수 있음
- 가능한 1개 또는 최소개의 속성들로 후보키를 선정해야 함
- 기본키(Primary Key)
- 후보키들 중 데이터베이스의 설계자에 의해서 튜플 구별을 위해 선택된 한 개의 키
- 기본키로 선택된 속성은 NULL 값을 가질 수 없음
- 대체키(Alternate Key, 보조키)
- 후보키 중에서 기본키를 제외한 모든 키는 대체키가 됨
- 외래키(Foreign Key)
- A 릴레이션이 B 릴레이션의 기본키를 속성으로 가지고 있으면 A 릴레이션의 해당 속성은 외래키가 됨
- 슈퍼키(Super Key)
- 튜플을 식별하기 위한 두 개 이상의 속성들의 집합으로 이루어진 키
- 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못함
4) 무결성(Integrity)의 제약사항
- 도메인 무결성
- 하나의 속성에 입력되는 값에 대한 정확성을 유지하는 성질
- 개체 무결성
- 기본키를 설정하여 그 기본키에 대해 NULL 값을 허용하지 않으므로 하나의 릴레이션으로 삽입되거나 변경되는 튜플들에 대해 정확한 값을 유지하는 성질
- 하나의 릴레이션에 있는 튜플은 중복된 튜플이 있어서는 안 된다는 성질
- 참조 무결성
- 릴레이션은 참조할 수 없는 외래키를 가질 수 없다는 성질
- 릴레이션 R, S가 있을 때 R 릴레이션의 임의의 속성이 S 릴레이션에서 기본키의 역할을 하게 될 때 이 속성을 외래키로 지정하여 참조 정보를 정확하게 유지하는 성질