데이터 베이스란?
데이터 베이스(Database,DB)는 구조화된 정보 또는 데이터의 집합 → 데이터의 묶음
데이터 베이스의 필요성
엑셀 시트나 CSV 파일과 같은 파일 형식으로 데이터를 저장하고 사용하는 것은 작은 규모의 데이터 또는 임시 데이터에 대해서는 유용할 수 있다.
🔽 데이터베이스와 파일형식의 차이점
DB의 필요성 | DB | 파일 형식 |
데이터 일관성 | 여러 사용자가 동시에 데이터를 조작할 때 데이터 일관성을 유지하기 위해 동시성 제어와 트랜잭션 관리 등의 기능을 제공 | 시에 여러 사용자가 접근하거나 조작할 때 일관성을 유지하기 어려움 |
데이터 접근과 조작 효율성 | 인덱스를 활용하거나 최적화된 알고리즘을 사용하여 데이터에 효율적으로 접근하고 조작 | 매번 전체 파일을 읽어야 하거나 데이터를 찾기 위해 반복적인 작업이 필요 |
보안과 권한 관리 | 접근 제어, 데이터 암호화, 사용자 및 그룹별 권한 할당 등을 통해 데이터를 보호 | 보안에 대한 제약이 있을 수 있고, 민감한 데이터가 노출 가능성 |
확장성과 유지보수성 | 대량의 데이터 처리, 여러 테이블과의 관계 구성으로 데이터를 구조화하여 확장성과 유지보수성을 높임 | 구조화와 관계성 유지가 어려우며 데이터의 추가 및 변경이 번거로움 |
✅자바에서는 데이터를 다룰 때 인메모리(in-memory) 형식을 사용한다.
인메모리 데이터 베이스는 컴퓨터 메모리에 보관되는 DB로 데이터 베이스의 저장과 실행이 빠르다. 하지만, 프로그램이 실행될 때만 존재하는 데이터이다.(프로그램 종료 시 데이터도 함께 사라짐) → 주로 실시간 데이터 처리, 대규모 데이터 분석, 빠른 응답 시간이 필요한 애플리케이션 등에서 사용되며 임시저장, 캐싱, 데이터베이스 쿼리 성능향상을 목적으로 사용된다.
DBMS란?
데이터베이스 관리 시스템(Database Management System, DBMS)의 약자로 다수의 사용자들이 데이터를 공유하고 동시 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. DBMS 관리를 위한 언어로 구조화된 질의 언어(Structured Query Language, SQL문)이 사용된다.
* 엑셀은 공유 시 저장하여 파일은 다운로드 받아 공유할 수 있으며, 여러 명의 사용자가 공유를 할 때 마다 파일을 저장하고 공유를 해야하는 번거로움이 있다. 이러한 이유로 엑셀은 DBMS 라고 부르지 않는다.
- DBMS의 종류
- IMS, CODASYL DB, DB2, ORACLE, INFORMIX, SYBASE, INGRES, MS-SQL, Objectivity, O2, Versanat, Ontos, Gemstone, Unisql, Object Store, Starburst, Postgres, Tibero, MySQL, MS-access
- DBMS 사용 이유(장점)?
- 데이터를 빠르게 검색하고 조작할 수 있도록 최적화되어 있어 데이터 관리 및 처리가 편하다.
- 자료의 통합성을 높인다.
- 권한에 따른 데이터 접근과 데이터 암호화데이터 암호화로 보안이 강화된다.
- 데이터 일관성을 유지할 수 있다. → 데이터의 중복을 최소화하고 일관된 방식으로 변경하기 때문에
- 데이터 백업 및 복구를 지원해서 데이터 유실 및 손상을 최소화할 수 있다.
- 여러 사용자와 공유가 가능하다. → ‘동시성 제어 메커니즘’을 사용하여 동시 데이터 업데이트가 가능함 → 권환 관리 기능을 통해 각 사용자에 따른 권한을 가질 수 있게 함 → API 를 통해 공유할 수 있는 인터페이스 제공 / 다른 데이터소스에서 데이터를 가지고 올 수 있음
- 단점?
- 비용이 많이 든다. → 라이센스, 하드웨어, 유지보수 비용 등
- 전문성이 요구된다.
- 데이터에 대한 의존성 발생 → DBMS가 다운되거나 손상되면, 데이터 액세스가 중단
- 서로 다른 DBMS 간의 호환성 문제 발생
- DBMS의 분류
- 계층형, 망형, 관계형, 객체지향형, 객체 관계형 등으로 분리
→ 데이터 관리시 관계형 DBMS (Relational DMBS) 가 주로 사용된다.
- 계층형, 망형, 관계형, 객체지향형, 객체 관계형 등으로 분리
관계형 DBMS란?
테이블(table)로 이루어져 있으며, 테이블은 키(key)와 값(vlaue)의 관계를 나타내는데 이렇게 데이터의 종속성을 관계로 표현하는 것이 관계형 데이터 베이스이다.
✅ 관계형 데이터베이스와 달리 테이블 기반 데이터 구조를 벗어나 구조가 고정되어 있지 않은 데이터 베이스를 NoSQL이라고 한다.
- 관계형 DBMS의 종류
- MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, Oracle Database
SQL이란?
SQL은 (Structured Query Language)의 약자로 구조화된 질의 언어라고 할 수 있다. 주로 RDBMS(Realation Database Management System)에서 데이터를 관리하기 위해 사용되는 표준화된 언어이며 데이터베이스에 대한 정의(DDL), 조작(DML), 제어(DCL)를 수행하는데 사용된다.
쿼리(Query)란?
SQL에 쿼리 라는 단어가 나온다. 쿼리란 또 무엇일까?에 대한 의문이 당연히 들 수 밖에 없다. 쿼리는 직역하면 질의어이다. 질의어는 또 무엇인가?
질의어(Query Languge)는 데이터베이스나 저보시스템에서 데이터를 검색하고 조작하기 위해 사용되는 언어로 원하는 데이터를 요청(필터링) 하거나 조작하는 명령어의 형태이다.
✅ 질의어의 역할
데이터 검색 DB에서 원하는 데이터를 검색할 수 있다.
데이터 필터링 | 조건에 따라 필터링을 할 수 있다. |
데이터 정렬 | 데이터를 정렬할 수 있으며 기준에 따라 오름차순, 내림차순 정렬이 가능하다. |
데이터 그룹화 및 집계 | 데이터 그룹화 또는 집계가 가능하다. 그룹 내에서 평균, 합계, 개수 등 연산 수행이 가능하다. |
데이터 수정 및 삭제 | 데이터를 업데이트하여 수정하거나 삽입 및 삭제가 가능하다. |
이전에 알고 있던 개념을 넘어 더욱 자세히 공부할 수 있는 시간을 가져 좋았다. 아무래도 용어들 하나하나가 쉽게 이해하기 어렵고 왜? 왜? 왜 사용하는거지 하는 의문이 많이 들었던 부분인데 그런 부분에서의 이해를 도울 수 있는 시간이었다.
물론 완전한 내 것으로 만들기 위해서는 이 또한 계속된 공부가 필요할 듯 하다. 그리고 며칠 네트워크와 같은 개념적 부분들을 많이 학습하다보니 java에 대해 조금 소홀해 진 것 같다. 문제를 계속 풀어야 겠다는 생각이 든다.
'LANGUAGE > MySQL' 카테고리의 다른 글
[MySQL] 필드 기본값(Default) 설정하기 (1) | 2023.06.04 |
---|---|
[MySQL] MySQL 자주 사용하는 쿼리문 / 쿼리문 실행 순서 정리 (0) | 2023.05.26 |
[SQL] 트랜잭션(Transaction)이란? ACID원칙 (1) | 2023.05.26 |
[SQL] 데이터베이스 언어: DDL, DML, DCL, TCL의 이해와 활용 (0) | 2023.05.25 |
[DATABASE] 데이터 베이스 개체 알아보기 / 인덱스(INDEX), 뷰(VIEW), 스토어드 프로시저(STORED PROCEDURE), 트리거(TRIGGER) 등 (0) | 2023.05.25 |