1. 데이터
데이터(data)는 정보나 사실들의 원시적이고 구조화되지 않은 형태입니다.
이것은 숫자, 문자, 이미지, 소리 등 다양한 형태로 나타날 수 있습니다.
예를 들면, 온도 측정 결과, 사진, 글, 음성 녹음 파일 등이 데이터에 해당합니다.
2. 데이터베이스
데이터베이스(database)는 관련된 데이터를 체계적으로 저장하고, 관리하고, 검색할 수 있도록 설계된
전자적 시스템입니다.
간단히 말하면, 데이터베이스는 "정보의 보관소"와 같습니다.
데이터베이스를 사용하면 크거나 작은 양의 데이터를 안전하게 저장하고 필요할 때 쉽게 찾아낼 수 있습니다.
3. 데이터베이스 관리 시스템(소프트웨어)
DBMS는 데이터베이스 관리 시스템(Database Management System)의 약자입니다. DBMS는 데이터베이스를 생성하고, 유지하고, 조작하기 위한 소프트웨어 도구의 집합입니다. 일반적으로 DBMS는 두 가지 유형으로 나뉩니다.
1. RDBMS (관계형 데이터베이스 관리 시스템): 데이터를 2차원 테이블 형태(엑셀 비슷)로 저장하며, 테이블 간의 관계를 정의할 수 있는 시스템입니다. 예로는 Oracle, MySQL, Microsoft SQL Server, PostgreSQL 등이 있습니다.
비슷한 테이블을 여러개를 만들어서 저장하는 형식입니다. 그래서 관계형이라고 불림
데이터베이서를 조작하기 위해서는 SQL이라는 언어를 사용합니다.
2. NoSQL DBMS: 관계형 모델을 사용하지 않는 데이터베이스 시스템으로, 큰 데이터 량이나 유동적인 데이터 구조를 지원하기 위해 설계되었습니다. 예로는 MongoDB, Cassandra, Redis 등이 있습니다.
단점은 속도가 조금 느리지만 장점은 굉장히 안정적입니다.
✔️ 데이터의 인풋,아웃풋의 속도가 중요하기문에 AI쪽에서는 가장 많이 쓰이는 DBMS는 NoSQL입니다.
※ DB-ENGINES
데이터베이스 관리 시스템을 매월 검색엔진에서 노출 빈도 등 다양한 요소로 DB를 평가하여 순위를 지정해 주는 사이트
https://db-engines.com/en/ranking
DB-Engines Ranking
Popularity ranking of database management systems.
db-engines.com
4. MongoDB
MongoDB(몽고디비)는 NoSQL 데이터베이스 시스템 중 하나로, 문서 지향(document-oriented) 데이터베이스입니다. 이는 관계형 데이터베이스와는 다르게 데이터를 테이블이 아니라 JSON 스타일의 BSON(Binary JSON) 형식의 문서로 저장합니다. MongoDB는 개발자가 유연하게 데이터를 저장하고 *쿼리할 수 있도록 하는 목적으로 만들어진 것이며, 대규모의 분산 데이터베이스 환경에서도 잘 동작합니다.
*쿼리 : 데이터를 넣고 빼고 하는 행동.
문서 지향 데이터베이스: MongoDB는 데이터를 BSON 형식의 문서로 저장합니다. 이 문서는 키-값 쌍(key-value pairs)으로 이루어져 있으며, 여러 종류의 데이터 유형을 포함할 수 있습니다.
스키마 없음 (Schema-less): 관계형 데이터베이스와 달리 MongoDB는 데이터베이스의 스키마를 명시적으로 정의하지 않습니다. 이는 동적인 스키마를 사용하여 데이터 모델을 유연하게 변경할 수 있도록 합니다.
유연한 데이터 모델: MongoDB는 다양한 데이터 형식을 지원하며, 중첩된 문서와 배열을 허용하여 복잡한 데이터 구조를 표현할 수 있습니다.
분산 데이터베이스: MongoDB는 여러 서버에 데이터를 분산하여 저장하고 처리할 수 있는 분산 데이터베이스 시스템을 지원합니다.
5. MongoDB Cloud
소프트웨어로 컴퓨터에서 설치를 해야하지만 cloud 서비스로 웹에서 연습해볼 수 있도록 서비스를 합니다.
MongoDB Cloud는 MongoDB 데이터베이스를 클라우드 환경에서 제공하는 서비스입니다.
MongoDB Cloud는 MongoDB, Inc.가 제공하는 공식 클라우드 서비스로서, MongoDB를 쉽게 관리하고 배포할 수 있도록 도와줍니다.
이 서비스는 데이터베이스 클러스터를 호스팅하고 관리하며, 사용자는 몽고DB 클라우드를 통해 데이터베이스를 쉽게 설정하고 확장할 수 있습니다.
클라우드 접속(Free)
https://www.mongodb.com/atlas/database
MongoDB Atlas Database | Multi-Cloud Database Service
The multi-cloud database service at the heart of our developer data platform that accelerates and simplifies how you build with data. Try MongoDB Atlas today!
www.mongodb.com
MongoDB Shell 다운로드
https://www.mongodb.com/try/download/shell
Try MongoDB Tools - Download Free Here
Free download for MongoDB tools to do more with your database. MongoDB Shell, Compass, CLI for Cloud, BI Connector and other database tools available.
5-1. MongoDB Cloud+Shell 가입&이용
* 가입 시 비밀번호는 자동으로 생성되는걸 기록해두기!
* network Access에서 IP를 0.0.0.0/0 을 입력해주기
설정하는 이유는 몽고디비의 데이터를 구축하고 파이썬이나 다른 언어를 활용하여 연계를 할건데,
파이썬을 만든 프로그램의 IP가 어디있느냐를 묻는건데,
공유기를 사용하거나 하면 IP가 안 잡힐수도있으니 다 열어둡니다.
즉 IP를 활용하여아무나 들어올 수 있도록 설정해줍니다.
*MongoDB Shell
개발자도 원격지에 있기에 접속해야해서 접속tool을 다운로드 받도록 합니다.
링크로 들어가면 본인 컴퓨터에 맞게 셋팅이되어있고 다운로드만 누르면 됩니다.
그 이후 bin 폴더 안에 들어가면 실행파일이 있고 실행을 하면 프롬포트가 나오게 됩니다.
프롬포트에 내가 사용할 경로를 입력해주면 되고 프롬포트에 입력해주면
이 모습이 나오면 정상적으로 나오게 되는겁니다.
이후 몽고디비와 연결하기 위해서는 2번 3번의 Install your driver아래에 나와있는 코드를 내가 사용할 연결할 프로그램에
복사, 입력해주면 됩니다.
6. MongoDB 문법
내 컴퓨터를 통해서 클라우드에 데이터를 넣는것이라서 프롬포트로 데이터를 생성,제거하면 됩니다.
데이터베이스 확인
show databases
데이터베이스 생성
*기존에 있다면 그 데이터베이스를 선택해주는 역할합니다.
use aiproject
컬렉션 생성
-컬렉션은 하나의 자료 덩어리를 의미합니다.
-"user"라고 쓰면 user컬렉션이 됩니다.
-쉽게 말해서 저장폴더가 만들어졌다고 생각하면 됩니다
db.createCollection("user")
컬렉션 확인
show collections
데이터 추가
-데이터를 넣을때는 딕셔너리 형태로 넣어주면 됩니다.
-key:value
db.user.insertOne({userid: "apple", name: "김사과", age: 20})
-몽고디비는 틀이 정해져있지않고 그냥 값만 있으면 들어갑니다
그래서 동일한 값이나 이름이 있어도 덮어쓰이는것이 아니라 그대로 하나 더 생성이 됩니다.
이렇게되면 같은 이름이나 값은 어떤게 어떤건지 잘 모르기에 MongoDB에서 ObjectId라는것을 자동생성해줍니다.
데이터 조회
#전체조회
db.user.find()
#userid가 apple인사람만 조회
db.user.find({"userid":"apple"})
#ObjectId가 6657174874b992fafecdcdf6인 id만 조회
db.user.find({"_id":ObjectId("6657174874b992fafecdcdf6")})
데이터 수정
db.user.updateOne({userid: "apple"}, {$set: {age: 25}})
데이터 삭제
db.user.deleteOne({userid:"apple"})
를 이용하여 데이터를 사용할 수 있습니다.
7. 파이썬을 활용한 MongoDB
파이썬을 활용한 MongoDB를 이용하기 위해서는
(저는) 이전에 사용했던 구글코랩을 이용하게됩니다.
위에는 프롬포트of컴퓨터, 현재는 구글코랩을 사용할 수 있는 문법들입니다.
구글코랩의 파이썬 버전확인
!python --version
버전이 확인되어야 몽고디비에 맞는 파이썬 버전을 선택할 수 있기때문에 확인해야합니다.
구글코랩에서 드라이브서버 설치
!python -m pip install "pymongo[srv]"==3.11
파이몽고, 몽고클라이언트 를 임포트하기.
from pymongo import MongoClient
여기서 만약 설치중 오류가 발생되었다면 선모두 다시시작을 눌러 시작하면 오류가 해결이 됩니다.
코랩-몽코디비클라우드 연결
url = 'mongodb+srv://korea:PLph5FCClyaUqSw3@cluster0.vru6slk.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0'
client = MongoClient(url)
print(client)
database = client['aiproject'] # DB명
collection = database['user'] # collection명
7-1. 데이터 추가하기
user_insert = {'userid':'banana', 'name':'반하나', 'age':25}
result = collection.insert_one(user_insert)
print(f'입력된 데이터 id: {result.inserted_id}')
7-2. 데이터 조회
7-3. 데이터 수정
$set을 이용하여 데이터 수정할 수 있습니다.
변경된 값이 제대로 들어갔다면 변경성공 이라고만 print될 수 있도록 해줍니다.
update_one는 하나만 변경되는 매소드입니다.
user_update = {"userid":"orange"}
new_value = {"$set":{"age":31}}
collection.update_one(user_update,new_value)
print('데이터 변경 성공!')

7-4. 데이터 삭제
update_one는 하나만 변경되는 매소드입니다. 즉 하나만 삭제가 되는 매소드인거죠.
user_delete = {"userid":"orange"}
collection.delete_one(user_delete)
print('데이터 삭제 성공!')
이렇게 되면 하나는 사라지게 됩니다. 확인은 MongoDB에서 확인할 수 있습니다.
*CRUD(Create: 테이블을 생성하거나 insert하는것을 의미함, Read, Update, Delete)
이상 데이터베이스 가지고 CRUD(넣고, 빼고, 바꾸고, 지우고)하는것을 해보았습니다.
'AI > 머신러닝' 카테고리의 다른 글
[Python] 넘파이, 행렬, 정렬 (2) | 2024.06.13 |
---|---|
[Python] Streamlit으로 초간단 번역 서비스만들기 (1) | 2024.06.09 |
변수 타입 어노테이션 (1) | 2024.06.03 |
크롤링 :: 1개의 이미지, 대량 이미지수집 (1) | 2024.05.31 |
크롤링 :: 인스타그램, 리팩토리 함수제작 및 실행 (0) | 2024.05.30 |