일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- JAVA #객체지향언어 #절차지향언어 #코딩 #Python #C #C++ #객체지향 #절차지향
- 프로그래머스 #자바 #java #코딩테스트 #연속된 수의 합 #코딩
- 프로그래머스 #JAVA #코딩테스트 #다음에 올 숫자 #코딩
Archives
- Today
- Total
Javadocs
[ DataBase] 데이터베이스란? 본문
1. 데이터 베이스(DB, DataBase)란?
데이터베이스는 여러 사람이 공유하여 사용할 목적으로 체계화하여 통합, 관리하는 데이터의 집합이다. 즉, 자료 파일들을 조직적으로 통합하여 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수 있다.
2. 데이터베이스의 특징
- 생성, 수정, 삭제를 통해 항상 최신의 데이터를 유지한다.
- 사용자들이 원하는 데이터를 동시에 공유할 수 있다.
- 데이터 논리적 독립성
- 사용자의 질의에 대하여 즉각적인 처리와 응답이 이루어짐.
- 사용자가 원하는 데이터를 주소가 아닌 내용에 따라 참조 가능.
3. 데이터베이스의 장, 단점
* 장점
- 데이터 중복 최소화
- 데이터 공유
- 일관성, 무결성, 보안성 유지
- 최신의 데이터 유지
- 데이터의 표준화 기능
- 데이터의 논리적, 물리적 독립성
- 용이한 데이터 접근
- 데이터 저장 공간 절약
* 단점
- 데이터베이스 전문가 필요
- 많은 비용 부담
- 데이터 백업과 복구가 어려움
- 시스템의 복잡성
- 대용량 디스크로 액세스가 집중되면 과부하 발생
3. 데이터베이스의 모델
- 계층형(Hierarchical DataBase)
- 데이터 간의 관계가 트리(Tree)형태의 구조. 부모-자식 관계로 표현되며, 1:N(일 대 다)으로 구성될 수 있다.
- 구조가 간단하고 구현, 수정, 검색이 쉽지만 N:N(다 대 다) 관계 처리가 불가능하고 구조 변경이 어렵다.
- 데이터를 Segment* 단위로 관리하며 Segment 간 계층을 트리구조로 관리한다.
(관계형 모델에서의 Entity를 계층형에서는 Segment 라 부른다.)
- 상위 Segment 삭제시 연쇄삭제가 발생.
- 쉽게 말해 폴더 안에 하위 폴더 안에 파일이 있는 형태. 여러 하위 폴더가 한 상위폴더에 있을 수 있지만 한 하위 폴더 가 여러 상위 폴더에 위치할 수 없다.
Ex. IMS(IBM의 Information Management System)
- 네트워크형(Network DataBase)
- 계층형 데이터베이스의 단점을 보완하여 N:N 구성이 가능한 망 형태의 모델.
- 계츨 구조에 링크를 추가해 유연성과 접근성을 높였지만 구조가 복잡해서 유지보수가 어렵다.
Ex. IDMS (Integrated Data Store)
- 관계형(Relational DataBase)
- 키(Key)와 값(Value)으로 이루어진 데이터들을 행(row)과 열(Column)로 구성된 테이블 구조로 단순화한 모델이다.
- SQL(Structured Query Language)를 사용하여 데이터 관리한다.
- 데이터 모델링이 간단하지만 CAD/CAM, GIS 등과 같은 비정형 데이터들을 다루거나 실시간 분석에는 적합하지 않 다.
Ex. MySQL, Oracle, PostgreSQL, MariaDB 등
- 객체지향형(Object-Oriented DataBase)
- 객체지향 프로그래밍 개념에 기반하여 만든 데이터 모델(클래스, 상속 등을 사용할 수 있다.)
- 비정형 데이터들을 데이터베이스화 하기 위해 만들어진 모델
- 멀티미디어 데이터 지원이 가능하지만 SQL쿼리를 사용할 수 없다.(OQL이 있긴하다.)
- 검색이나 대규모 트랜잭션 처리에서 성능이 떨어져 몇몇 특수 전문 분야에서만 사용한다.
Ex. O2, ONTOS - 객체관계형(Object-Relational DataBase)
- 관계형 데이터베이스에 객체 지향 개념을 도입하여 만든 데이터베이스 모델
- 객체지향 개념을 지원하는 표준 SQL을 사용할 수 있고, 데이터 타입도 관계형 데이터베이스 보다 다양하게 추가되 었다.
Ex. UniSQL, Object store - NoSQL
- Not only SQL의 줄임말로 SQL 특성뿐만 아니라 다양한 특성을 지원.
- 데이터 간에 관계를 정의하지 않는 데이터베이스 모델
- 기존 RDBMS의 복잡도와 용량의 한계를 극복하기 위한 목적
- 비정형 데이터 처리에 유리.
- 스키마 변경이 불가능해 데이터 값에 문제가 생기면 감지가 어렵다.
Ex. MongoDB, redis - NewSQL
- RDBMS의 SQL과 NoSQL의 장점을 결합하여 관계형 모델.
- 트랜잭션 지원 및 확장성과 고 가용성을 모두 만족시키려는 목적에서 만들어진 데이터베이스 모델
Ex. VoltDB
출처 :
https://noahlogs.tistory.com/36
https://cocoon1787.tistory.com/722
4. 데이터베이스 관리 시스템( DataBase Management System, DBMS)란?
다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어들을 의미.
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 등 |
'Programming > DataBase' 카테고리의 다른 글
[Database] JOIN 이란? (1) | 2023.04.09 |
---|---|
[DataBase] 트랜잭션(Transaction)이란? (0) | 2023.04.08 |
Comments