Database/DB

[DB] 데이터베이스(DataBase)의 기초 개념

코코무 2024. 1. 8. 10:53
데이터베이스와 DBMS
  • 데이터베이스: 데이터(data)와 베이스(base)의 합성어
  • DBMS: Database Management System, 데이터베이스 관리 시스템(예: Oracle, MySQL, PostgreSQL 등)

 

1. 데이터와 정보

데이터 사실(facts)이나 관찰(observations)을 표현한 값이나 기록이다. 데이터는 처리되지 않은 상태의 원재료이며, 그 자체로는 의미를 갖지 않을 수 있다. 보석으로 가공되지 않은 원석이라고 생각하면 된다.

 

정보는 데이터를 처리하거나 해석하여 의미 있는 형태로 변환한 것입니다. 정보는 특정 목적을 위해 데이터를 이해하고 활용할 수 있게 한다.

 

 

2. 효율적인 데이터 관리를 위한 조건

 

-  데이터를 통합하여 관리

-  일관된 방법으로 관리

-  데이터 누락 및 중복 제거

-  여러 사용자(응용 프로그램 포함)가 공동으로 실시간 사용 가능

 

파일 시스템과 DBMS

 

1. 파일 시스템을 통한 데이터 관리

서로 다른 여러 응용 프로그램이 제공하는 기능에 맞게 필요한 데이터를 각각 저장하고 관리한다.

각 파일에 저장한 데이터는 서로 연관이 없고 중복 또는 누락이 발생할 수 있는데, 데이터가 각 응용 프로그램별로 흩어져 있기 때문이다.

 

2. DBMS를 통한 데이터 관리

효율적인 데이터 관리 조건을 만족하며 서비스 제공의 효율성을 높이기 위해 등장하였다.

데이터베이스의 데이터 조작과 관리를 극대화한 시스템 소프트웨어로 여러 목적으로 사용할 데이터의 접근 및 관리 등의 업무를 DBMS가 전담하는 방식이다.

 

파일 시스템 방식의 문제 DBMS를 통한 데이터 관리
응용 프로글매이 개별 데이터를 직접 관리 하나의 소프트웨어가 데이터를 관리하므로 데이터 중복 피함
응용 프로그램이 데이터를 쓰는 방식이 각각 다름 여러 응용 프로그램이 하나의 DBMS를 통해 데이터를 사용하므로 데이터를 동시에 공유 가능
데이터가 특정 응용 프로그램에 종속되어 있으므로 응용 프로그램을 변경하면 기존 데이터를 사용할 수 없음 하나의 DBMS를 통해 데이터를 관리하기 때문에 각각의 응용 프로그램이 데이터를 관리하는 방식이 통합됨
  응용 프로그램과는 별도로 데이터가 DBMS에 의해 관리 및 보관되기 때문에 응용 프로그램의 업데이트 또는 변경과 관계없이 데이터를 사용 가능

 

 


 

 

데이터 모델(Data Model)

 

1. 계층형 데이터 모델(hierarchical data model)

 

1960~1980년대 말까지 상업용 데이터베이스 시장에서 많이 사용한 데이터 모델로 데이터를 계층 구조로 조직한다.

트리(tree)구조를 활용하여 데이터 관련성을 계층별로 나누어 부모 자식 같은 관계를 정의하고 데이터를 관리하는데,

각 노드는 하나의 부모 노드를 갖고, 여러 자식 노드를 가질 수 있다(1:N).

 

  • 주요 특징

트리 구조:

데이터는 트리 형태로 조직되며, 루트 노드를 중심으로 자식 노드들이 계층적으로 배열된다.

각 자식 노드는 하나의 부모 노드만을 가진다.

 

단일 부모:

모든 노드는 오직 하나의 부모 노드를 가지며, 이는 데이터의 명확한 경로를 제공한다.

 

빠른 검색:

계층적 구조 덕분에 특정 노드로의 경로가 명확하게 정의되어 있어 검색이 빠르게 이루어질 수 있다.

트리 구조는 깊이 우선 탐색(DFS)이나 너비 우선 탐색(BFS)과 같은 알고리즘을 사용하여 효율적인 검색을 가능하게 한다.

 

데이터 중복:

부모-자식 관계가 명확히 정의되어 있어, 동일한 데이터를 여러 계층에서 반복적으로 저장해야 할 수 있습니다.

이는 데이터 중복과 관리의 복잡성을 초래할 수 있다.

 

데이터 무결성:

계층 구조가 명확하기 때문에 데이터의 무결성을 쉽게 유지할 수 있습니다. 부모-자식 관계를 명확히 유지하면 데이터의 일관성을 보장할 수 있다.

 

 

 


2. 네트워크형 데이터 모델

 

-  망형 데이터 모델

- 그래프(graph) 구조를 기반으로 한다 → 개체 간 관계를 그래프 구조로 연결하므로 자식 개체가 여러 부모 개체를 가질 수 있다(계층형 데이터 모델과의 차이).

 


3. 객체 지향형 모델(object-relational data model )

 

-  1980년대 후반에 등장한 모델로 객체 지향 프로그래밍에서 사용하는 객체 개념을 기반으로 한 데이터 모델

-  객체 지향 프로그래밍처럼 데이터를 독립된 객체로 구성하고 관리하며 상속, 오버라이드 등 객체 지향 프로그래밍에 사용되는 강력한 기능을 활용한다.

-  이 개념을 완전히 데이터베이스에 적용하는 것이 용이하지 않기 때문에, 이를 적용한 상용 DBMS는 많지 않다.

-  오라클 데이터베이스와 같은 여러 DBMS 제품군이 관계형 데이터 모델을 바탕으로 객체 개념을 도입하여 '객체 관계형(object-relational datamodel) DBMS'로 영역 확장하고 있다.

 


4. 관계형 모델(relational data model)🌟

 

-  1970년 에드거 프랭크 커드가 제안한 모델로, 현대에 가장 많이 사용되는 관계형 데이터베이스의 바탕이 되는 모델

-  데이터와 데이터 간의 관계를 테이블(또는 관계)의 형태로 표현한 모델

-  다른 모델과 달리 데이터 간 관계(relationship)에 초점을 둔다.

-  각 데이터의 독립 특성만을 규정하여 데이터 묶음을 나눈다.

-  관계형 데이터 모델의 핵심 구성 요소

1. 객체(entity)

 1) 데이터베이스에서 데이터화 하려는 사물, 개념의 정보 단위

 2) 관계형 데이터베이스의 테이블(table)개념과 대응

 3) 테이블은 릴레이션(relation)으로 표기하기도 함

 

2. 속성(attribute)

 1) 개체를 구성하는 데이터의 가장 작은 논리적 단위

 2) 데이터의 종류, 특성, 상태 등을 정의

 3) 관계형 데이터베이스의 열(column) 개념과 대응

 

3. 관계(relationship)

 1) 개체와 개체 또는 속성 간의 연관성을 나타내기 위해 사용

 2) 관계형 데이터베이스에서는 테이블 간의 관계를 외래키(foreign key)등올 구현하여 사용

 

> 이것들을 활용하여 데이터의 독립성(independency)와 무결성(integrity)과 같은 데이터를 안전하게 관리하기 위해 필요한 개념들을 정의하게 된다.

 

 


 

 

관계형 데이터베이스와 SQL

 

1. 관계형 데이터베이스

 

-  관계형 데이터 모델 개념을 바탕으로 데이터를 저장, 관리, 검색하는 데이터베이스

-  관계형 데이터베이스를 관리하는 시스템은 DBMS에 데이터 간의 관계를 강조하기 위한 'relational'을 앞에 붙여 RDBMS(관계형 데이터베이스 관리 시스템)이라고 부른다.

 

2. 특징

 

SQL

-  Structured Query Langauge(에스큐엘 또는 시퀄)

-  RDBMS에서 데이터를 다루고 관리하는 데 사용하는 데이터베이스 질의 언어

-  데이터 정의, 조작, 제어 등을 수행

- 'RDBMS'에게 데이터에 관해 물어보고 결과를 얻는다'

종류 설명
DQL(Data Query Langauge) RDBMS에 저장한 데이터를 원하는 방식으로 조회하는 명령어
DML(Data Manipulation Langauge) RDBMS 내 테이블의 데이터를 저장, 수정, 삭제하는 명령어
DDL(Data Definition Langauge) RDBMS 내 데이터 관리를 위해 테이블을 포함한 여러 객체를 생성, 수정, 삭제하는 명령어
TCL(Transaction Control Langauge) 트랜잭션 데이터의 영구 저장 및 취소 등과 관련된 명령어
DCL(Data Control Langauge) 데이터 사용 권한과 관련된 명령어