기록은 기억을 이기고 시간보다 오래 남는다.

Computer Science/Data Base

데이터베이스

준_준 2024. 4. 18. 13:29

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와는 다른 방식으로 데이터를 저장하고 색인

                      실시간 

 

 

 

반응형