3-1. 데이터베이스의 의미
- 데이터베이스의 정의:
- 여러 사용자와 응용 시스템이 공통의 데이터를 서로 공유하여 통합하여 저장 및 관리하는 시스템입니다. 이는 중복을 최소화하고 데이터의 일관성과 표준화를 유지하는 것을 목적으로 합니다.
- 데이터베이스의 특징:
- 실시간 접근성: 데이터베이스 시스템은 사용자의 요청에 대해 실시간으로 데이터를 처리하고 응답해야 합니다.
- 동시 공유: 여러 사용자와 응용 시스템이 동시에 데이터에 접근할 수 있어야 합니다.
- 지속적인 변화: 새로운 데이터의 삽입, 삭제, 수정, 갱신 등의 작업을 통해 데이터를 항상 최신으로 유지해야 합니다.
- 내용에 의한 참조: 데이터의 위치에 상관없이 사용자가 원하는 내용으로 데이터를 참조할 수 있어야 합니다.
- 데이터 베이스 이용 장점
- 데이터 중복 최소화
- 데이터 무결성
- 데이터 일관성
- 데이터 독립성
- 데이터 표준화
- 데이터 보안 유지
- 데이터베이스의 구성요소:
- 데이터베이스는 객체, 속성(attribute), 그리고 개체 사이의 관계로 구성됩니다.
3-3. ORM과 데이터베이스의 활용
- ORM(Object-Relational Mapper):
- 관계형 데이터베이스의 테이블과 객체지향 프로그램의 클래스 사이를 연결하는 도구입니다. 이를 통해 객체와 릴레이션 간의 불일치를 해결하고 객체 지향 프로그래밍의 장점을 활용할 수 있습니다.
- ORM의 활용으로 얻는 이점:
- SQL 문장 대신 클래스의 메서드를 사용하여 데이터베이스를 조작할 수 있습니다.
- 코드의 재사용성과 유지보수성이 향상됩니다.
- DBMS에 대한 종속성을 줄일 수 있습니다.
3-4. 벡터 데이터베이스와 유사도 검색
- 비정형 데이터의 정의:
- 설계된 모델이나 구조로 구성되지 않은 데이터를 의미합니다. 텍스트, 음성, 영상 등이 여기에 포함됩니다.
- 벡터 데이터베이스:
- 벡터는 데이터 객체를 수치화하여 표현한 것입니다. 주제, 단어, 이미지 등이 숫자로 표현됩니다.
- 벡터 임베딩은 이러한 데이터를 수치로 변환하는 과정을 의미합니다.
- 벡터 데이터베이스의 활용 분야:
- AI/ML 응용: 의미 정보 검색과 AI 기능 향상에 사용됩니다.
- 유사도 기반 추천 시스템: 선택된 아이템과 유사한 아이템을 검색하여 추천 알고리즘에 적용됩니다.
- NLP 응용: 텍스트 임베딩을 통해 자연어 이해 및 생성에 활용됩니다.
NoSQL
- NoSQL (Not Only Sql):
- 관계형 데이터베이스와는 다른 방식으로 데이터를 저장하고 색인하는 데이터베이스 시스템입니다.
- 주로 대규모 및 실시간 데이터 처리에 사용됩니다.
Part3 데이터 베이스
3-1. 데이터의 구조화와 관계형 데이터 베이스(1)
-데이터베이스의 의미
여러 사용자와 응용 시스템들이 사용 목적은 다르지만 공통의 데이터를 서로 공유하여 사용할 수 있도록 통합하여 저장 관리하는 모임
통합 데이터- 연관성 있는 데이터, 중복 부분의 최소화
저장 데이터- 자기 디스크 등 컴퓨터로 접근 가능한 매체에 기록
운영 데이터- 조직의 존재 목적이나 기능을 수행하는 데 필수인 데이터
공용 데이터- 여러 사용자와 여러 응용 시스템으로부터 공유 접근 가능
-데이터베이스의 특징
실시간 접근성: 사용자나 응용 시스템에서 요구하는 질의에 대하여 데이터를 실시간으로 처리한 뒤 바로 응답할 수 있어야 함
동시 공유: 여러 사용자와 응용 시스템이 동시에 원하는 데이터에 접근할 수 있어야 함
지속적인 변화: 새로운 데이터의 삽입, 삭제, 수정, 갱신 등의 작업을 통해 항상 최신의 데이터를 정확하게 유지하고 있어야 함
내용에 의한 참조: 데이터의 위치에 상관없이 사용자가 원하는 내용으로 참조할 수 있어야 함
-데이터베이스의 구성요소
객체와 그들이 가지는 속성(attribute), 그리고 개체 사이의 관계
-데이터베이스 이용으로 얻는 장점들
데이터 중복 최소화
데이터 무결성 : 정확한 정보를 보장
데이터 일관성
데이터 독립성: 물리적 독립성과 논리적 독립성
데이터 표준화
데이터 보안 유지
-관계형 데이터 베이스(Relational DB)
개체와 개체 사이의 관계를 표현하기 위하여 2차원의 표를 사용
-키(Keys)
한 튜플을 다른 튜플들과 구별하는 하나 이상의 속성의 집합
참조 무결성- 참조할 수 없는 외래키 값을 가질 수 없음
개체 무결성- 기본키에 속하는 속성은 비어 있을 수 없음
-관계형 대수 연산
관계형 데이터베이스에서 릴레이션을 대상으로 하여 릴레이션을 만들어 내는 수학적 연산의 집합 -> 이것들을 조합하여 데이터베이스 내의 데이터 조작이 가능
합집합, 교집합, 차집합, 곱집합, 프로젝션, 셀렉션, 조인
참고: 릴레이션 vs 테이블
테이블은 데이터베이스의 데이터가 저장된 물리적 구조를 가리키는 데 주로 쓰이는 용어
릴레이션은 데이터베이스 모델링에서 주로 쓰이는 용어
추가의 제약 조건이 존재하며, 물리적으로 저장되어 있지 않은 릴레이션들을 동적으로 처리 가능
-SQL(Structured Query Language)
테이블에 데이터 삽입 -> INSERT
데이터 삭제-> DELETE
데이터 갱신 -> UPDATE
데이터 검색 -> SELECT
다음과 같은 물류를 널리 이용함
DML(data manipulation languate)
DDL(data definition language)
DCL(data control language)
TCL(transaction control language)
-트랜잭선(Transaction)
데이터베이스 관리 시스템에서 상호작용의 단위
데이터베이스의 데이터 무결성 유지 확신을 위하여 지원되어야 함
트랜잭션을 지원하는 데이터베이스를 transactional database라고부름
현재 대부분의 관계형 DBMS는 transctional DB
트랜잭션이 가지는 속성: ACID
원자성: 하나의 트랜잭션은 모두실행되거나 전혀 실행되지 않아야 함
일관성: 트랜잭션의 실행 전후에 데이터베이스상태가 일관되어야 함
독립성: 여러 트랜잭션이 병렬 실행되는 경우에도 서로 간섭하지 않도록 격리도
영구성: 완료된 트랜잭션의 실행 결과는 데이터베이스에 영구 보존되어야 한다.
3-3. 초과 데이터베이스의 활용
-ORM(Object-Relational Mapper)
관계형 데이터베이스의 테이블과 객체지향 프로그램의 클래스 사이를 연결
ORM의 활용으로 얻는이점
SQL 문장이 아닌 클래스의 메서드를 이용한 데이터베이스 접근/조작
코드의 재사용성, 유지보수가능성, 리팩토링 용이성 향상
DBMS에 대한 종속성 감송
ORM의 한계점
객체와 릴레이션 사이의 불일치에 기인하여 발생하는 비효율
3-4. 벡터 데이터베이스와 유사도 검색
-비정형 데이터의
비정형 데이터의 정의
설게 된 모델이나 구조로 구성되지 않은 데이터
질적인 것으로 분류되어 인간 또는 기계에 의하여 생성됨
비정형 데이터의 예
리치 미디어: 오디오 또는 비디오 데이터, 보안 감시 데이터, 지리공간 데이터
사물 인터넷 데이터: 장치의 티커 또는 센서 데이터 등
텍스트 데이터: 이메일, 문자메시지, 인보이스, 레코드 및 생산성 애플리케이션
과학적 데이터: 기계가 생성한 우주 탐사 또는 지진 보고서등
의료 데이터: MRI, X선 및 CT스캔 등의 의료 데이터와 영상 정보
-비정형 데이터 처리의 어려움
방대한 볼륨:기존 데이터의 80%의 분량을 차지하며 지속적으로 많은 데이터가 생성
다양성: 다양한 데이터 유형으로 구성되어 있어 저장과 상호 참조에 연관한 어려움 발생
품질: 일관성이 보장되지 않으면 오류 및 불일치 등이 항상 존재
보안 및 개인정보 보호: 중요하거나 민감한 데Part3 데이터 베이스
3-1. 데이터의 구조화와 관계형 데이터 베이스(1)
-데이터베이스의 의미
여러 사용자와 응용 시스템들이 사용 목적은 다르지만 공통의 데이터를 서로 공유하여 사용할 수 있도록 통합하여 저장 관리하는모임
통합 데이터- 연관성 있는 데이터, 중복 부분의 최소화
저장 데이터- 자기 디스크 등 컴퓨터로 접근 가능한 매체에 기록
운영 데이터- 조직의 존재 목적이나 기능을 수행하는 데 필수인 데이터
공용 데이터- 여러 사용자와 여러 응용 시스템으로부터공유 접근 가능
-데이터베이스의 특징
실시간 접근성: 사용자나 응용 시스템에서 요구하는 질의에 대하여 데이터를 실시간으로 처리한 뒤 바로 응답할 수 있어야 함
동시 공유: 여러 사용자와 응용 시스템이 동시에 원하는 데이터에 접근할 수 있어야 함
지속적인 변화: 새로운 데이터의 삽입, 삭제, 수정, 갱신 등의 작업을 통해 항상 최신의 데이터를 정확하게 유지하고 있어야함
내용에 의한 참조: 데이터의 위치에 상관 없이 사용자가 원하는 내용으로 참조할수 있어야 함
-데이터베이스의 구성요소
객체와 그들이 가지는 속성(attribute), 그리고 개체 사이의 관계
-데이터베이스 이용으로 얻는 장점들
데이터 중복 최소화
데이터 무결성 : 정확한 정보를 보장
데이터 일관성
데이터 독립성: 물리적 독립성과 논리적 독립성
데이터 표준화
데이터 보안 유지
-관계형 데이터 베이스(Relational DB)
개체와 개체 사이의 관계를 표현하기 위하여 2차원의 표를 사용
-키(Keys)
한 튜플을 다른 튜플들과 구별하는 하나 이상의 속성의 집합
참조 무결성- 참조할 수 없는 외래키 값을 가질 수 없음
개체 무결성- 기본키에 속하는 속성은 비어 있을 수 없음
-관계형 대수 연산
관계형 데이터베이스에서 릴레이션을 대상으로 하여 릴레이션을 만들어 내는 수학적 연산의 집합 -> 이것들을 조합하여 데이터베이스 내의 데이터 조작이 가능
합집합, 교집합, 차집합, 곱집합, 프로젝션, 셀렉션, 조인
참고: 릴레이션 vs 테이블
테이블은 데이터베이스의 데이터가 저장된 물리적 구조를 가리키는 데 주로 쓰이는 용어
릴레이션은 데이터베이스 모델링에서 주로 쓰이는 용어
추가의 제약 조건이 존재하며, 물리적으로 저장되어 있지 않은 릴레이션들을 동적으로 처리 가능
-SQL(Structured Query Language)
테이블에 데이터 삽입 -> INSERT
데이터 삭제-> DELETE
데이터 갱신 -> UPDATE
데이터 검색 -> SELECT
다음과 같은 불류를 널리 이용함
DML(data manipulation languate)
DDL(data definition language)
DCL(data control language)
TCL(transaction control language)
-트랜잭선(Transaction)
데이터베이스 관리 시스템에서 상호작용의 단위
데이터베이스의 데이터 무결성 유지 확신을 위하여 지원되어야 함
트랜잭션을 지원하는 데이터베이스를 transactional database라고부름
현재 대부분의 관계형 DBMS는 transctional DB
트랜잭션이 가지는 속성: ACID
원자성: 하나의 트랜잭션은 모두실행되거나 전혀 실행되지 않아야 함
일관성: 트랜잭션의 실행 전후에 데이터베이스상태가 일관되어야함
독립성: 여러 트랜잭션이 병렬 실행되는 경우에도 서로 간섭하지 않도록 격리도
영구성: 완료된 트랜잭션의 실행 결과는 데이터베이스에 영구 보존되어야한다.
3-3. ORM과 데이터베이스의 활용
-ORM(Object-Relational Mapper)
관계형 데이터베이스의 테이블과 객체지향 프로그램의 클래스 사이를 연결
ORM의 활용으로 얻는이점
SQL 문장이 아닌 클래스의 메서드를 이용한 데이터베이스 접근/조작
코드의 재사용성, 유지보수가능성, 리팩토링 용이성 향상
DBMS에 대한 종속성 감송
ORM의 한계점
객체와 릴레이션 사이의 불일치에 기인하여 발생하는 비효율
3-4. 벡터 데이터베이스와 유사도 검색
-비정형 데이터의
비정형 데이터의 정의
설게된 모델이나 구조로 구성되지 않은 데이터
질적인 것으로 분류되어 인간 또는 기ㅖ에 의하여생성됨
비정형 데이터의 예
리치 미디어: 오디오 또는 비디오 데이터, 보안 감시 데이터, 지리공간 데이터
사물 인터넷 데이터: 장치의 티커 또는 센서 데이터 등
텍스트 데이터: 이메일, 문자메시지, 인보이스,레코드 및 생산성 애플리케이션
과학적 데이터: 기계가 생성한 우주 탐사 또는 지진 보고서등
의료 데이터: MRI, X선 및 CT스캔 등의 의료 데이터와 영상 정보
-비정형 데이터 처리의 어려움
방대한 볼륨:기존 데이터의 80%의 분량을 차지하며 지속적으로 많은 데이터가 생성
다양성: 다양한 데이터 유형으로 구성되어 있어 저장과 상호 참조에 연관한 어려움 발생
품질: 일관성이 보장되지 않으면 오류 및 불일치 등이 항상 존재
보안 및 개인정보 보호: 중요하거나 민감한 데이터가 포함되어 있을 수 있으며, 이를 정교하게 판단하고 보안성을 유지하는 것이 어려움
통합: 사전에 정의된 데이터 모델이 없어 전체적인 뷰를 위해 정형 데이터와 통합하는 것이 복잡
-벡터 데이터 베이스
벡터
데이터 객체를 수치화하여표현 한것
때로는 벡터의 차원이 매우 높을 수 있음
벡터 임베딩
주제,단어, 이미지 또는 기타 데이터를 숫자로 표현한 것
대규모 언어 모델 및 기타 AI 모델에 의하여 생성되는 것이 일반적
각 벡터 임베딩 사이의 거리를 계산하여 검색 엔진이벡터 간의 유사성을 정의할 수 있음
벡터 임베딩을 색인하고 질의하는 방식을 벡터 데이터베이스를 이용하여 데이터 저장 및 검색실행
-LSH(Locality Sensitive Hashing)
유사도가 높은 입력값들이 “높은 확률로”같은 버킷에 해시되도록 하여 낮은 시간 복잡도록 유사한벡터를 찾을 수 있도록 하는 기법
고차원 벡터 공간을 여러 개의 해시 버킷으로 분할하는 해시 함수
데ㅣ터 클러스터링 및 유사도 검색에 활용
Audio/vidio fingerprinting 등에 널리 이용됨
-ANNOY
Approximate Nearest NEighbours Oh Yeah
최근접 이웃의 정확도를 다소 포기하고 시간 비용을 코게 절감하는 근사 검색 기법
벡터공간에서 임의의 두점을선택하고, 이 두 점 사이의 초평면으로 벡터 공간분할
분할된 공간에 포함된 점들의 개수를노드로 하는 이진 트리를 생성
각 노드에 포함된 점들의 개수가 K개 미만이 될 때가지 위 과정을 반복하여 최종 검색트리 완성
쿼리 입력을 검색 트리에서 검색한 뒤 해당 부분 공간에서 최근접 이웃을 검색
-벡터 데이터베이스의 활용
AI/ML 응용: 의미 정보 검색 및 장기 기억을 통하여 AI 기능을 향상시킬 수 있음
유사도기반 추천 시스템
선택된 아이템과 유사한 아이템을 검색하여 상품/콘텐츠 추천 알고리즘에 적용
NLP(Natural Language Processing;자연어 처리) 응용
텍스트 임베딩을 통하여 자연어 이해 및 생성에 적용
이미지인식 및 검색 응용
유사하거나 일치하는 이미지를 검새갛기위하여 특성 벡터를 추출하고
이것을 데이터 베이스화
-NoSQL
“Not Only Sql'
RDMBS와는 다른 방식으로데이터를 저장하고 색인
실시간
이터가 포함되어 있을 수 있으며, 이를 정교하게 판단하고 보안성을 유지하는 것이 어려움
통합: 사전에 정의된 데이터 모델이 없어 전체적인 뷰를 위해 정형 데이터와 통합하는 것이 복잡
-벡터 데이터 베이스
벡터
데이터 객체를 수치화하여 표현한 것
때로는 벡터의 차원이 매우 높을 수 있음
벡터 임베딩
주제, 단어, 이미지 또는 기타 데이터를 숫자로 표현한 것
대규모 언어 모델 및 기타 AI 모델에 의하여 생성되는 것이 일반적
각 벡터 임베딩 사이의 거리를 계산하여 검색 엔진이 벡터 간의 유사성을 정의할 수 있음
벡터 임베딩을 색인하고 질의하는 방식을 벡터 데이터베이스를 이용하여 데이터 저장 및 검색실행
-LSH(Locality Sensitive Hashing)
유사도가 높은 입력값들이 “높은 확률로”같은 버킷에 해시되도록 하여 낮은 시간 복잡도록 유사한 벡터를 찾을 수 있도록 하는 기법
고차원 벡터 공간을 여러 개의 해시 버킷으로 분할하는 해시 함수
데이터 클러스터링 및 유사도 검색에 활용
Audio/vidio fingerprinting 등에 널리 이용됨
-ANNOY
Approximate Nearest NEighbours Oh Yeah
최근접 이웃의 정확도를 다소 포기하고 시간 비용을 코게 절감하는 근사 검색 기법
벡터공간에서 임의의 두 점을 선택하고, 이 두 점 사이의 초평면으로 벡터 공간분할
분할된 공간에 포함된 점들의 개수를 노드로 하는 이진트리를 생성
각 노드에 포함된 점들의 개수가 K개 미만이 될 때까지 위 과정을 반복하여 최종 검색트리 완성
쿼리 입력을 검색 트리에서 검색한 뒤 해당 부분 공간에서 최근접 이웃을 검색
-벡터 데이터베이스의 활용
AI/ML 응용: 의미 정보 검색 및 장기 기억을 통하여 AI 기능을 향상할 수 있음
유사도기반 추천 시스템
선택된 아이템과 유사한 아이템을 검색하여 상품/콘텐츠 추천 알고리즘에 적용
NLP(Natural Language Processing;자연어 처리) 응용
텍스트 임베딩을 통하여 자연어 이해 및 생성에 적용
이미지인식 및 검색 응용
유사하거나 일치하는 이미지를 검새갛기위하여 특성 벡터를 추출하고
이것을 데이터 베이스화
-NoSQL
“Not Only Sql'
RDMBS와는 다른 방식으로 데이터를 저장하고 색인
실시간
'Computer Science > Data Base' 카테고리의 다른 글
SQL 기본 명령어 및 고급 사용법 (0) | 2024.08.08 |
---|---|
1)데이터베이스에서의 데이터, 정보, 지식과 활용분야 (0) | 2022.10.14 |