1.학습 주제
- 데이터베이스란?
- 관계형 데이터베이스에 대하여
- 벡터 데이터베이스에 대하여
- NOSQL은 무엇인가?
2.주요 메모 사항 소개
- 데이터베이스란?
- 정의: 여러 사용자와 응용 시스템들이 사용 목적은 다르지만 공통의 데이터를 서로 공유하여 사용할 수 있도록 통합하여 저장 관리하는 모임.
- 특징
- 실시간 접근성(real-time accessibility): 사용자나 응용 시스템에서 요구하는 질의에 대하여 데이터를 실시간으로 처리한 뒤 바로 응답할 수 있어야 함.
- 동시 공유(concurrent sharing): 여러 사용자와 응용 시스템이 동시에 원하는 데이터에 접근할 수 있어야 함.
- 지속적인 변화(continuous evolution): 새로운 데이터의 삽입, 삭제, 수정, 갱신 등의 작업을 통해 항상 최신의 데이터를 정확하게 유지하고 있어야 함.
- 내용에 의한 참조(content reference): 데이터의 위치에 상관 없이 사용자가 원하는 내용으로 참조할 수 있어야 함.
- 구성요소로는 개체(entity)와 그들이 가지는 속성(attribute), 그리고 개체 사이의 관계(relation)가 존재.
- 장점
- 데이터 중복 최소화
- 데이터 무결성
- 데이터 일관성
- 데이터 독립성
- 데이터 표준화
- 데이터 보안 유지
- 관계형 데이터베이스에 대하여
- 개체와 개체 사이의 관계를 표현하기 위하여 2차원의 표를 사용
-
- 키(keys): 한 튜플을 다른 튜플들과 구별하는 하나 이상의 속성의 집합
-
- 참조 무결성 - 참조할 수 없는 외래키(외부키) 값을 가질 수 없음
- 개체 무결성 - 기본키에 속하는 속성은 비어 있을 수 없음
- 관계형 대수 연산 (Relational Algebra): 관계형 데이터베이스에서 릴레이션을 대상으로 하여 릴레이션을 만들어 내는 수학적 연산의 집합 → 이것들을 조합하여 물리적으로 저장되어 있지 않은 릴레이션들을 동적으로 생성 가능
- 트랜젝션(Transaction): 데이터베이스 관리 시스템에서 상호작용의 단위. 데이터베이스의 데이터 무결성 유지 확산을 위하여 지원되어야 함.
- 트랜젝션은 ACID을 만족시켜야한다.
- 원자성(atomicity): 하나의 트랜잭션은 모두 실행되거나 전혀 실행되지 않아야 함.
- 일관성(consistency): 트랜잭션의 실행 전후에 데이터베이스 상태가 일관되어야 함.
- 독립성(isolation): 여러 트랜잭션이 병렬 실행되는 경우에도 서로 간섭하지 않도록 격리되어야 함.
- 영구성(durability): 완료된 트랜잭션의 실행 결과는 데이터베이스에 영구 보존되어야 함.
- SQL: 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어
- 다음과 같은 분류를 이용한다.
- DML(data manipulation language)
- DDL(data definition language)
- DCL(data control language)
- TCL(transaction control language)
- ORM(Object-Relational Mapper): 관계형 데이터베이스 테이블과 객체지향 프로그램의 클래스 사이를 연결.
- 장점
- SQL 문장이 아닌 클래스의 메서드를 이용한 데이터베이스 접근/조작
- 코드의 재사용성, 유지보수가능성, 리팩토링 용이성 향상
- DBMS에 대한 종속성 감소
- 한계점
- 객체와 릴레이션 사이의 불일치에 기인하여 발생하는 비효율
- 벡터 데이터베이스에 대하여
- 비정형 데이터: 설계된 모델이나 구조로 구성되지 않은 데이터, 질적인 것으로 분류되며 인간 또는 기계에 의하여 생성됨.
- 비정형 데이터의 문제: 많은 양, 다양성으로 인한 상호 참조 어려움, 일관성이 보장되지 않는 품질, 보안 및 개인정보 등의 민간한 데이터 포함, 사전에 정의된 데이터 모델이 없어 통합이 어려움.
- 벡터 데이터베이스: 데이터 객체를 수치화하고 벡터 임베딩 사이의 거리를 계산하여 벡터 간의 유사성 정의
- 기법으로는 LSH(Locality-Sensitive Hashing), ANNOY(Approximate Nearest Neighbours Oh Yeah)
- 활용
- AI/ML 응용
- 유사도 기반 추천 시스템
- NLP(Natural Language Processing: 자연어처리) 응용
- 이미지 인식 및 검색 응용
- NOSQL은 무엇인가?
- NOSQL(Not Only SQL): 비관계형 데이터베이스, 실시간 웹 응용 및 빅데이터 응용에 널리 이용됨.
- 이점으로는 유연성, 확장성, 고성능이 존재.
- 종류로는 Key-Value(Amazon DynamoDB), Document(MongoDB), Column-Family, Graph(SNS)
- 관계형 데이터베이스를 대체하지는 않고 상호보완적 관계
3. 공부하며 느낀점
ORM을 다뤄본 적 있어서 관계형 데이터베이스에 대해서는 알고 있었는데 벡터데이터베이스나 NOSQL 등을 배우면서 다양한 데이터베이스가 있다는 것을 알았다.
4.출처
'프로그래머스 데브코스' 카테고리의 다른 글
[클라우딩 어플리케이션 엔지니어링 TIL] 6. 클라우드 컴퓨팅 (0) | 2024.04.17 |
---|---|
[클라우딩 어플리케이션 엔지니어링 TIL] 5. 소프트웨어 공학 (0) | 2024.04.17 |
[클라우딩 어플리케이션 엔지니어링 TIL] 4. 컴퓨터 네트워크 (1) | 2024.04.17 |
[클라우딩 어플리케이션 엔지니어링 TIL] 2. 컴퓨터의 구조와 운영체제 (0) | 2024.04.16 |
[클라우딩 어플리케이션 엔지니어링 TIL] 1. 디지털 정보의 표현 (0) | 2024.04.15 |