BackEnd/Database
Database
게리드
2023. 7. 31. 08:32
1. DB(DataBase)
1. 의의
- 데이터(data): 자료로 단순한 정보들의 나열.
- 데이터베이스(database): 논리적연관성이있는 데이터를 모은 데이터의 집합으로 데이터의 저장 형태를 말한다.
데이터의 중복을 최소화하여 목적에 맞게 효율적으로 관리하기위해 사용한다.
일반적인 데이터베이스는 ISOS로, 데이터베이스의 시스템적 특징을 말할때는 R1C3으로 정의한다.
약자 | 정의 |
---|---|
I(integrated Data) | 통합 데이터 : 데이터 중복이 최소화 된 데이터 |
S(Stored Data) | 저장 데이터 : 컴퓨터가 접근할 수 있는 매체에 저장된 데이터 |
O(Operational Data) | 운영 데이터: 고유한 업무를 수행하는데 필요한 데이터 |
S(Shared Data) | 공용 데이터: 여러 응용 시스템이 공동으로 소유하고 유지하는 데이터 |
R1C3은 첫 글자 R이 1개 C가 3개임을 의미한다.
용어 | 정의 |
---|---|
R(realtime Accessilbility) | 실시간 접근성: 사용자 질의에 실시간으로 처리하여 응답 |
C(Continuous Evolution) | 지속적 변화: 삽입,삭제,수정을 통해 지속적으로 최신 데이터를 동적으로 유지 |
C(Concurrent Sharing) | 동시 공유: 목적이 다른 여러 사용자가 동시에 같은 데이터를 공유 |
C(Content Reference) | 내용에의한 참조: 데이터베이스에있는 데이터를 참조할때 레코드의 주소나 위치가 아닌 사용자가 요구하는 데이터내용으로 참조 |
2. RDBMS(Database Management System)
데이터베이스는 DBMS(데이터베이스관리시스템)으로 관리된다.
데이터의 입력, 수정, 삭제같은 다양한 기능을 제공한다.
DB는 데이터를 모아둔 것이고, DBMS는 DB의 관리시스템으로 DB를 관리하는 소프트웨어이다.
3. DB의 종류
1) 계층형 DB
- 데이터가 부모와 자식의 관계를 이루는
트리구조
의 데이터베이스이다.
2) 네트워크형 DB
노드로 데이터를 표현
한 모델로, 노드는 네트워크상에 존재하며 서로 대등한 관계로 계층형 DB의 데이터 중복,상하 종속관계의 문제를 해결했다.- 노드는 주인노드가 될수도 멤버노드가 될수도있어 레코드의 관계를 일대다 또는 다대다로 표현살 수 있지만 종속성의 문제가 생길 수 있어 데이터베이스의 구조를 변경하기 어렵다.
3) 키-값 DB
NOSQL
의 한종류로 key-value를 일대일로(한쌍으로) 저장하는 비관계형 데이버베이스로 관계형 데이터베이스와함꼐 가장 많이 사용된다.- 데이터의 중복이 발생할 수 있으며 비정혁적인 데이터 저장에 유리하다.
NoSQL?
비관계형 데이터베이스를 말할때 사용하며, 관계형 DB의 한계를 극복하기위한 데이터저장소로 document
,graph
,key-value
, search
등 다양한 데이터 모델을 사용한다.
유형 | 특징 | 종류 |
---|---|---|
키-값 | Redis, Mecached, LevelDB | |
도큐먼트 | MongoDB, CouchDB,MarkLogic | |
컬럼 | HBase, Cassandra, Hypertable | |
그래프 | Neo4j, Blazegraph, OrientDB |
4) 관계형 DB
실무에서 가장 많이 사용
하는 데이터베이스 종류로 데이터를 테이블의 형식으로 저장한다.테이블
형식이란 데이터를 열(column)
과 행(row)
으로 구성한 테이블로 정리하며, 고유키(primary)
가 각행을 식별한다.
데이터는 행단위로 저장되며, 각 항목의 속성은 열이라고한다.
정보가 저장된 집합을테이블이라한다.
용어 | 설명 |
---|---|
열(column, field, attribute) | 고유한 이름을 가지고 자신만의 타입을 가진다. |
행(row, tuple, record) | 관계형 데이터의 묶을으로 한테이블의 모든 행은 같은 수의 열을 가진다. |
테이블 | 행과 열의 값의 모음으로 특성에따라 데이터를 논리적으로 그룹화한것이다. |
💭
이번 공부글은 monggoDB를 사용하다가 어려워서 mySQL이 더좋은거같다고 말했다가, mongoDB부터 사용하셨던분이 "몽고디비가 얼마나 편리한데요!한번 써보세요. 생각이 달라질겁니다" 라는 말을듣고 DB에대해 알아보고자했다.
이제껏 학원에서 MySQL만 사용하기만해서 몰랐는데 생각보다 다양한 데이터베이스가 있었다.