[데이터베이스] 한눈에 보는 데이터베이스
수업을 하기에 앞서 전체적인 데이터베이스의 개념과 함께 앞으로 공부할 방향을 찾기위한 자료조사를 진행하였다.
데이터베이스의 정의
데이터베이스는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다. 일반적으로 컴퓨터 시스템에 전자적으로 저장되며 데이터베이스는 데이터베이스 관리 시스템(DBMS)에 의해 제어된다. 데이터베이스는 여러 개의 연관된 데이터 테이블로 구성되며, 이러한 데이터들은 일정한 구조를 가지고 있어 검색, 추가, 수정, 삭제 등의 작업이 용이하다.
데이터베이스의 특징
1) 실시간 접근성 : 데이터베이스는 사용자의 질의에 즉각적인 처리와 응답이 가능하다.
2) 지속적인 변화 : 데이터베이스의 상태는 동적이다. 생성, 수정, 삭제를 통하여 항상 최신의 데이터를 유지한다.
3) 동시 공유 : 데이터베이스는 서로 다른 목적을 가진 여러 응용 프로그램에서 사용하기 위한 것이므로 다수의 사용자가 동시에 같은 내용의 데이터를 공유할 수 있다.
4) 내용에 의한 참조 : 데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치가 아닌 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.
5) 데이터 논리적 독립성
데이터베이스의 장단점
데이터 베이스는 데이터 중복 최소화, 데이터 공유를 할 수 있다는 장점이 있으며 일관성, 무결성, 보안성을 유지하며 최신의 데이터를 유지한다. 또한 데이터의 표준화가 가능하고 데이터의 논리적, 물리적 독립성으로 용이한 데이터 접근이 가능하며 데이터의 저장 공간을 절약할 수 있다. 하지만 데이터베이스의 전문가가 필요하며 많은 비용을 부담해야한다는 단점이 있고 데이터 백업과 복구가 어려우며 시스템의 복잡함으로 만약 대용량 디스크로 엑세스가 집중되면 과부하가 발생할 수 있다.
데이터베이스 활용 분야
1) 비즈니스 : 기업이나 조직에서는 고객 정보, 주문 정보, 재고, 회계 등과 같은 다양한 데이터를 관리하기 위해 데이터베이스를 사용한다.
2) 의학 : 의료 분야에서는 환자 정보, 검사 결과, 치료 기록 등과 같은 데이터를 데이터베이스에 저장한다.
3) 학술 연구 : 학술 연구에서는 다양한 종류의 데이터를 수집하고 분석하기 위해 데이터베이스를 사용한다. 이를 통해 연구 결과를 더 정확하고 신뢰성 높게 만들 수 있다.
4) 컴퓨터 게임 : 게임에서는 플레이어 정보, 게임 아이템, 게임 기록 등을 데이터베이스에 저장한다. 이를 통해 게임 내에서 랭킹 시스템이나 아이템 교환 시스템 등을 운영할 수 있다.
5) 인터넷 : 인터넷에서는 다양한 형태의 데이터를 저장하고 분석하기 위해 데이터베이스를 사용한다.
데이터베이스 시스템
데이터베이스 시스템은 사용자(user), 응용 프로그램(application program), 데이터베이스(DB), 데이터베이스 관리 시스템(DBMS) 4가지 요소로 구성된다.
DBMS(Database Management System, 데이터 관리 시스템)
데이터베이스를 운영하고 관리하는 소프트웨어이다. 계층형, 망형, 관계형 DMS 중 대부분의 DBMS가 테이블로 구성된 관계형 DBMS(RDMBS)형태로 사용된다. DBMS의 대표적인 종류로는 Oracle, MySQL, SQL Server, PostgreSQL 등이 있으며, DBMS는 현대 사회에서 매우 중요한 역할을 수행하며, 데이터 관리를 위한 핵심 기술 중 하나이다.
DBMS(Database Management System, 데이터 관리 시스템)의 종류
1) 계층적 DBMS
데이터를 트리 구조로 관리하는 데이터베이스 관리 시스템이다. 각 데이터 항목이 하나 이상의 상위 데이터 항목에 의해 구성되며, 데이터의 구조가 순서대로 배치되어 있다.
2) 네트워크
데이터를 그래프 형태로 저장하고 관리하는 데이터베이스 관리 시스템이다. 각 데이터 항목이 다른 항목과 연결되어 있는데, 이를 “노드”라고 하며 노트는 다른 노드와 연결된 링크를 통해 관계를 가진다.
3) 관계형 DBMS(RDBMS)
데이터를 테이블 형태로 저장하고, 테이블 간의 관계를 이용하여 데이터를 조작하는 DBMS로 Oracle, MySQL, SQL Server, PostgreSQL등이 있다
4) 객체지향 관계형 DBMS
객체지향 프로그래밍 개념을 기반으로한 관계형 데이터베이스이다. 객체 지향 관점에서 데이터를 저장하고 관리하며, 관계형 데이터베이스에서 제공하는 데이터 관리 기능을 보완한다.
- 비관계형 DBMS(NoSQL)
스키마 없이 자유롭게 데이터를 저장할 수 있으며, 분산처리 시스템에서 사용하기 용이하다. 대표적으로 MongoDB, Cassandra, Redis등이 있다.
- Hybrid DBMS
최근에는 관계형 DBMS와 비관계형 DBMS의 장점을 결합한 Hybrid DBMS가 등장하고 있다. 관계형 데이터 모델과 비관계형 데이터 모델을 모두 지원하여, 유연성과 확장성을 동시에 제공한다.
DBMS(Database Management System, 데이터 관리 시스템)의 특징
1) 데이터의 중복 최소화
데이터를 중복해서 저장하지 않고, 필요할 때마다 참조하여 사용하여 데이터의 일관성과 정확성을 유지하며, 저장 용량을 줄일 수 있다.
2) 데이터의 일관성 유지
ACID(원자성, 일관성, 고립성, 지속성)를 보장하여 데이터 무결성과 일관성을 유지한다.
3) 데이터의 보안성 유지
데이터 접근 권한을 관리하여, 불법적인 접근이나 변경을 방지한다. 또한, 데이터의 백업과 복원 기능을 제공하여 데이터 손실을 최소화한다.
4) 데이터의 동시 공유
여러 사용자가 동시에 데이터베이스를 공유하여 사용할 수 있다.
5) 데이터의 효율적인 관리
데이터의 저장, 검색, 수정, 삭제 등의 작업을 수행하는데 필요한 다양한 기능을 제공한다.
6) 데이터의 유연성 제공
SQL
관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어이다. SQL문을 사용하여 데이터베이스에서 정보를 저장, 업데이트, 제거, 검색을 할 수 있다.
SQL은 이식성이 높고, 데이터를 빠르게 처리할 수 있으며 다양한 쿼리 작업을 수행할 수 있다는 장점이 있다.