Pythonを使用してリレーショナル・データベースとNOSQLをクリーンアップし、Mongo(Python)のMONGODB Atlasに接続します.


NoSQL


NoSQLは、従来よく使われていたリレーショナル・データベースとは異なるデータベースで、主に大量のデータをロードするために使用されます.

拡張性(NoSQL水平拡張性)


1)垂直拡張:関係データベースの主な方式で、2000年の初めから、WEBの発展に従って、もっと大きい設備とサーバーを使用する.
  • サーバの直接管理によるセキュリティ向上
  • 高性能サーバのコストが高い
  • メモリ使用量が増加し、効率が低下します.
  • 2)横方向拡張:以降の小型コンピュータを複数のストレージデータベースに分割する>分散計算(クラスタなど)
  • 比較的低コストのコンピュータ>コスト削減
  • もメモリ効率を向上させました.
  • 容量の大きいデータを高速にロード(ビッグデータを使用)できる
  • リレーショナル・データベースの特徴

  • 固定アーキテクチャは、明確で論理的なデータ構造とデータとの関係を提供することができる.
  • NoSQLよりもデータのマウントの柔軟性が低い>アーキテクチャが明確であるため、マウントにも適しています.
  • データは、テーブル形式のプライマリ・キー(プライマリ・キー)によって識別され、完全性が保証されます.
  • データが多ければ多いほど、パフォーマンスへの影響が大きくなります.(垂直拡張制限)
  • NoSQLプロパティ

  • DATAをBSON(バイナリJSON)形式で格納し、ディック系列に分割する.
  • データから要素を1つずつ抽出および使用するには適用されません.
  • DBエンジンごとに異なりますが、idを自動(document)または手動(key value)に更新することで区別されます.
  • アーキテクチャはダイナミックなので、すべてのデータがなくても属性に応じて列を追加するなど、非常に柔軟です.
  • APIは、変換を必要とせずに迅速に使用できる、必要な、または提供されるフォーマットを提供します.
  • JSON:Java Scriptのオブジェクト記号で表されるデータ.

    NoSQLベースDB TYPE


    1)KEY VALUE:KEYとValue属性データ.代表:DynamodB
    2)DOCUMENT:Dictionaryと同様に、データ全体がKeyで計算された値を表します.代表:MongoDB
    3)WIDE-COLUNN:DB、Key、Value形式でロードし、カラムのデータを集中的に管理する.代表:HBAse

    MongoDB (Atlas)


    非リレーショナル・データベースでは、Document形式でデータをロードし、BSONデータを使用して、ロード・フォーマットが非常に柔軟です.文字、数字、配列を自由に格納できます.
    ここでAtlasはMongoDBが提供するクラウドデータベースであり、Local DBに比べて機能上の制限がある.
    MongoDB LOCALとCLUSTERはこれからもっと深く研究します.

    MongoDB Atlasの準備


  • 会員収入https://www.mongodb.com/ko-kr/cloud/atlas/efficiency

  • 組織完了-個人名または後で変更できます.

  • 右上隅のNew Projectを作成します.以下に示します.


  • 項目名を記入してから次へ


  • これは後でコラボレーションするウィンドウで、スキップして作成します.
    後でdbを生成しても無料でcreateを行います.




    このようにすると、早ければ数秒、長ければ1~3分かかるかもしれませんが、dbの生成には時間がかかります.

  • 完了したらconnectラベルに入り、ユーザー名とパスワードを設定し、CREATEを行います.


  • IPを私の接続IPに設定します.赤い欄をクリックするだけです.


  • 最終的には、Pythonを使用してMongoDBに接続するので、以下に示すようにpython 3.6以降に設定できます.


    MongoDB URIは、Mongodb srvサービスを使用するためにウィンドウを個別に注釈または表示します.
  • pymongoでMongoDBに接続する


    Mongo URIのチェック



    まずMongoDB URIについて知ります.上図に示すように、user、password、host、データベース名を領域別に区分できます.次に、完全な接続コードを書きます.

    pymongoパッケージを使用してPythonコードを記述

    
    # MongoDB URI
    URI = 'mongodb+srv://david:[email protected]/myFirstDatabase?retryWrites=true&w=majority'
    
    host = 'cluster0.b7qcq.mongodb.net'
    user = 'david'
    password = 'password'
    database_name = 'myFirstDatabase'
    collection_name = 'mongo' #table 명과 같이 생각하기
    
    from pymongo import MongoClient
    
    Mongo_URI = f'mongodb+srv://{user}:{password}@{host}/{database_name}?retryWrites=true&w=majority'
    
    #MongoClient 객체 생성 
    client = MongoClient(URI)
    
    # database 지정
    database = client[database_name] # = client['myFirstDatabase']
    
    # collection 객체 생성 - db로부터 'mongo'이름의 table이라고 생각하기
    collection = database[collection_name] # = database['mongo']
    
    # 집어넣을 데이터 예시 = JSON 또는 DICT형식
    document={'example':'first one'}
    
    # collection 객체의 insert_one으로 한개의 doc을 업로드
    collection.insert_one(document)
    一番上のURIを使用してMongoClientオブジェクトを作成することができますが、他のdbを容易に使用するために、最初の作成時から各URIの主な入力部分をフォーマットに符号化します.
    database nameの場合、デフォルトはmyFirstDatabaseで、変更できます.


    その後pythonを実行し、Browse Collectionを実行すると、データベースが作成されていることがわかります.
    myFirstDatabaseというDBではmongoというcollection(RDBのテーブルサイズ)がソートされ、中間で自動的に固有のidが決定されて返され、vsコードに含まれる例「first one」dictionaryが見られる.