반응형
🚀
데이터베이스란?
- 데이터베이스는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합입니다.
- 즉, 자료 파일들을 조직적으로 통합하여 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고도 할 수 있습니다.
데이터베이스의 특징
- 실시간 접근성
- 생성, 수정, 삭제를 통한 최신 데이터 유지
- 사용자들 간의 동시 공유
- 사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조 가능
- 데이터 논리적 독립성
데이터베이스의 장단점
데이터베이스 장점
- 데이터 중복 최소화
- 데이터 공유
- 일관성, 무결성, 보안성 유지
- 최신의 데이터 유지
- 데이터의 표준화 가능
- 데이터의 논리적, 물리적 독립성
- 용이한 데이터 접근
- 데이터 저장 공간 절약
데이터베이스 단점
- 데이터베이스 전문가 필요
- 많은 비용 부담
- 데이터 백업과 복구가 어려움
- 시스템의 복잡성
- 대용량 디스크로 액세스가 집중되면 과부하 발생
데이터베이스 모델
- 계층형
데이터 간의 관계가 트리 형태의 구조. 부모-자식 관계로 표현되며, 1:N으로 구성될 수 있음
구조가 간단하고 구현, 수정 , 검색이 쉽지만 N:N 관계 처리가 불가능하고 구조변경이 어려움
ex) IMS(IBM의 Information Management System) - 네트워크형
계층형 데이터베이스의 단점을 보완하여 N:N 구성이 가능한 망 형태의 모델
유연성과 접근성이 높지만 구조가 복잡해 유지 보수가 어려움
ex) IDMS ( Integrated Data Store ) - 관계형
키(Key)와 값(Value)으로 이루어진 데이터들을 행(Row), 열(Column)로 구성된 테이블 구조로 단순화시킨 모델
SQL(Structured Query Language)를 사용하여 데이터 관리
데이터 모델링이 간단하지만 비정형 데이트들을 다루거나 실시간 분석에는 적합하지 않음
ex) MySQL, Oracle, MariaDB - 객체지향형
객체지향 프로그래밍 개념에 기반하여 만든 데이터 모델
비정형 데이터들을 데이터베이스화 하기 위해 만들어진 모델
검색이나 대규모 트랜잭션 처리에서 성능이 떨어지는 단점이 있어 몇몇 특수 전문분야에서만 사용
ex) O2, ONTOS - 객체 관계형
관계형 데이터베이스에 객체 지향 개념을 도입하여 만든 데이터베이스 모델
객체지향 개념을 지원하는 표준 SQL을 사용할 수 있고, 데이터 타입도 다양하게 추가되었음
ex) UniSQL, Object Store - NoSQL
Not only SQL의 줄임말로 SQL 특성뿐만 아니라 다양한 특성을 지원
데이터 간의 관계를 정의하지 않는 데이터베이스 모델
RDBMS의 복잡도와 용량의 한계를 극복하기 위한 목적으로 만들어짐
비정형 데이터 처리에 유리하지만 스키마 변경에 추가적인 작업이 필요
ex) MongoDB, DynamoDB, redis - NewSQL
RDBMS의 SQL과 NoSQL의 장점을 결합하여 관계형 모델, 트랜잭션 지원 및 확장성과 고 가용성을 모두 만족시키려는 목적에서 만들어진 데이터베이스 모델
ex) VoltDB
데이터베이스 관리 시스템(DataBase Management System, DBMS)란?
- 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구 집합
- 데이터베이스 생성, 조회, 수정, 삭제와 같은 환경과 각종 응용프로그램이 데이터베이스에 접근할 수 있는 인터페이스를 제공하며 복구, 권한 관리와 같은 보안성 기능도 제공
DBMS 언어
SQL은 데이터베이스에서 데이터를 정의, 조작, 제어하기 위해 사용하는 언어
속성 | 설명 | 주요 명령어 |
DDL (Data Definition Language) |
데이터베이스나 테이블 등을 생성, 삭제하거나 그 구조를 변경하기 위한 명령어 | CREATE, ALTER, DROP, TRUNCATE |
DML (Data Manipulation Language) |
데이터베이스에 저장된 데이터를 처리하거나 조회, 검색하기 위한 명령어 | INSERT, UPDATE, DELETE, SELECT 등 |
DCL (Data Control Language) |
데이터베이스에 저장된 데이터를 관리하기 위하여 데이터의 보안성 및 무결성 등을 제어하기 위한 명령어 | GRANT, REVOKE 등 |
📚 참고
https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Database
https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4
반응형
'💾Database' 카테고리의 다른 글
[Database] 데이터 무결성(Data Integrity)이란? (3) | 2021.12.13 |
---|---|
[Database] 데이터베이스 기본 용어 정리 (0) | 2021.11.29 |
[Database] 데이터베이스 인덱스(Index)란? (0) | 2021.10.15 |
[Database] DBMS, RDBMS, SQL, NoSQL 용어 정리 (0) | 2021.10.13 |
[Database] 데이터베이스 정규화 (1NF, 2NF, 3NF) (0) | 2021.08.25 |