1. 데이터

데이터(data)는 정보나 사실들의 원시적이고 구조화되지 않은 형태입니다. 이것은 숫자, 문자, 이미지, 소리 등 다양한 형태로 나타날 수 있습니다. 예를 들면, 온도 측정 결과, 사진, 글, 음성 녹음 파일 등이 데이터에 해당합니다.

 

2. 데이터베이스

데이터베이스(database)는 관련된 데이터를 체계적으로 저장하고, 관리하고, 검색할 수 있도록 설계된 전자적 시스템입니다.

간단히 말하면, 데이터베이스는 "정보의 보관소"와 같습니다. 데이터베이스를 사용하면 크거나 작은 양의 데이터를 안전하게 저장하고 필요할 때 쉽게 찾아낼 수 있습니다.

 

 

3. 데이터베이스 관리 시스템

DBMS는 데이터베이스 관리 시스템(Database Management System)의 약자입니다. DBMS는 데이터베이스를 생성하고, 유지하고, 조작하기 위한 소프트웨어 도구의 집합입니다. 일반적으로 DBMS는 두 가지 유형으로 나뉩니다.

 

RDBMS (관계형 데이터베이스 관리 시스템): 데이터를 테이블 형태로 저장하며, 테이블 간의 관계를 정의할 수 있는 시스템입니다. 예로는 Oracle, MySQL, Microsoft SQL Server, PostgreSQL 등이 있습니다.

NoSQL DBMS: 관계형 모델을 사용하지 않는 데이터베이스 시스템으로, 큰 데이터 량이나 유동적인 데이터 구조를 지원하기 위해 설계되었습니다. 예로는 MongoDB, Cassandra, Redis 등이 있습니다.

 

 

4. MongoDB

MongoDB(몽고디비)는 NoSQL 데이터베이스 시스템 중 하나로, 문서 지향(document-oriented) 데이터베이스입니다. 이는 관계형 데이터베이스와는 다르게 데이터를 테이블이 아니라 JSON 스타일의 BSON(Binary JSON) 형식의 문서로 저장합니다. MongoDB는 개발자가 유연하게 데이터를 저장하고 쿼리할 수 있도록 하는 목적으로 만들어진 것이며, 대규모의 분산 데이터베이스 환경에서도 잘 동작합니다.

 

문서 지향 데이터베이스: MongoDB는 데이터를 BSON 형식의 문서로 저장합니다. 이 문서는 키-값 쌍(key-value pairs)으로 이루어져 있으며, 여러 종류의 데이터 유형을 포함할 수 있습니다.

스키마 없음 (Schema-less): 관계형 데이터베이스와 달리 MongoDB는 데이터베이스의 스키마를 명시적으로 정의하지 않습니다. 이는 동적인 스키마를 사용하여 데이터 모델을 유연하게 변경할 수 있도록 합니다.

유연한 데이터 모델: MongoDB는 다양한 데이터 형식을 지원하며, 중첩된 문서와 배열을 허용하여 복잡한 데이터 구조를 표현할 수 있습니다.

분산 데이터베이스: MongoDB는 여러 서버에 데이터를 분산하여 저장하고 처리할 수 있는 분산 데이터베이스 시스템을 지원합니다.

5. MongoDB Cloud

MongoDB Cloud는 MongoDB 데이터베이스를 클라우드 환경에서 제공하는 서비스입니다. MongoDB Cloud는 MongoDB, Inc.가 제공하는 공식 클라우드 서비스로서, MongoDB를 쉽게 관리하고 배포할 수 있도록 도와줍니다. 이 서비스는 데이터베이스 클러스터를 호스팅하고 관리하며, 사용자는 몽고DB 클라우드를 통해 데이터베이스를 쉽게 설정하고 확장할 수 있습니다.

클라우드 접속

https://www.mongodb.com/atlas/database

MongoDB Shell 다운로드

https://www.mongodb.com/try/download/shell

MongoDB Shell 다운 후 Mogosh 에서 실습

 

데이터베이스 확인

show databases

 

데이터베이스 생성

use aiproject

 

컬렉션 생성

db.createCollection("user")

 

컬렉션 확인

show collections

 

데이터 추가

db.user.insert({userid: "apple", name: "김사과", age: 20})

 

데이터 조회

db.user.find() 

​

db.user.find({"userid":"apple"})

 

데이터 수정

db.user.update({userid: "apple"}, {$set: {age: 25}})

 

 

데이터 삭제

db.remove.remove({userid:"apple"})

 

 

데이터베이스 확인방법

상단메뉴 Data Services -> Overview왼쪽메뉴에서 Database선택 후 -> Browse Collections 클릭

 
 

 

 

데이터 확인


Colab 실습

 

  • pymongo 설치
!pip install pymongo

 

from pymongo import MongoClient


url = "mongodb+srv://<나의 아이디>:<나의 비밀번호>.mongodb.net/?retryWrites=true&w=majority"
client = MongoClient(url)
print(client)
database = client['aiproject']
collection = database['user']
user_insert = {"userid" : "Fubao", "name" : "푸바오", "age": 3}
result = collection.insert_one(user_insert)
print(f'입력된 데이터 ID{result.inserted_id}

output

더보기

>> 입력된 데이터 ID655decc05ec49026ad1c476f

 

# 데이터 조회

# 데이터 조회
user_find = {"userid" :"Fubao"}
result = collection.find_one(user_find)
print(f'데이터:{result}')

output

더보기

데이터:{'_id': ObjectId('655decc05ec49026ad1c476f'), 'userid': 'Fubao', 'name': '푸바오', 'age': 3}

 

# 데이터 수정

# 데이터 수정
user_update = {"userid":"Fubao"}
new_value = {"$set":{"age":31}}
collection.update_one(user_update, new_value)
print('데이터 변경 성공')

output

더보기

데이터 변경 성공

 

# 데이터 삭제

# 데이터 삭제
user_delete = {"userid":"Fubao"}
collection.delete_one(user_delete)
print("데이터 삭제 성공")

output

더보기

데이터 삭제 성공

 

'컴퓨터 비전 > DBMS' 카테고리의 다른 글

파이참에서 aws, MySQL 연결하기  (0) 2024.01.19
MySQL  (0) 2024.01.18