TIL 7週間(IM)


マシンレッスンTIL 7週目コレクション

対応するブログに置き換える...https://velog.io/@semin/React-about-redux
災い
sprint - Cmarket redux

Database
  • 構造化クエリー言語:構造化クエリー言語(データベースプログラミング言語)
  • query:格納情報のフィルタリングに関する質問
  • in-memory:閉じるとデータが失われます
    ファイルI/O:必要なデータのみをインポートすることはできません.また、常にすべてのデータをインポートし、サーバ上で
  • をレンダリングする必要があります.
  • データベース:データ専用サーバ
  • プライマリ・キー(プライマリ・キー):一意の値
  • 外部キー(外部キー):参照可能な値
  • SELECT 특성_1, 특성_2 FROM 테이블_이름 // 특정 특성들을 테이블에서 사용
    SELECT * FROM 테이블_이름 // 테이블의 모든 특성을 선택
    // 특정 값을 제외한 데이터 찾기
    SELECT 특성_1, 특성_2 FROM 테이블_이름 WHERE 특성_2 <> '특정 값';
    // 문자열에서 특정 값과 비슷한 값을 필터할 때 LIKE와 '\%' 혹은 '*'를 사용
    SELECT 특성_1, 특성_2 FROM 테이블_이름 WHERE 특성_2 LIKE '%특정 문자열%'
    SELECT * FROM 테이블_이름 ORDER BY 특성_1 // 특성_1에 대한 오름차순(DESC 내림차순)
    SELECT * FROM 테이블_이름 LIMIT 200 // 데이터 결과값 200개 한정
    // 특성_1, 특성_2, 특성_3의 유니크한 '조합'값들을 선택
    SELECT DISTINCT 특성_1,특성_2,특성_3 FROM 테이블_이름
    // 서로 공통된 부분으로만 연결(INNER JOIN)
    SELECT *
    FROM 테이블_1
    JOIN 테이블_2 ON 테이블_1.특성_A = 테이블_2.특성_B
    SELECT * FROM 테이블_이름 GROUO BY 특성_1 // 특정 컬럼을 그룹화
    // HAVING : group by로 조회된 결과에 대한 필터
    // 각 고객의 주문한 값들의 평균을 구한 뒤 그 평균이 6.00 넘는 결과들만 조회
    SELECT CustomerId, AVG(Total) FROM invoices
    GROUP BY CustomerId HAVING AVG(Total) > 6.00
    ACID
  • Atomicity:1つのオブジェクト内ですべての演算が成功または失敗しなければならない
    ≪コンシステンシ|Consistency|oem_src≫:トランザクションの前後で、データベースが一貫性を保つ必要があります.
    Isolation:各オブジェクトは独立しています.相互の演算を確認または影響できません
    Durability:成功したオブジェクトのログを記録し、永続的に保持する
  • 各単語の性質は、データベース内の単一トランザクション(トランザクション)の安定性を確保するために必要です.
  • トランザクション:複数のタスクを1つの実行ユニットに結合します.特定のタスクから開始するには、バンドルされたすべてのタスクを完了する必要があります.タスクが失敗すると、すべてのタスクが失敗します.
    SQL vs NoSQL
  • データベースは、リレーショナルおよび非リレーショナルデータベース
  • に分けられる.
  • リレーショナル・データベースはSQLベース、非リレーショナル・データベースはNoSQLベース
  • の一般的なリレーショナル・データベース:MySQL、Oracle、MariaDB、SQLite、PostgresSQL
  • NoSQL
  • データは、固定されていないデータベースタイプ
  • を指す.
  • KeyValueタイプ:キー値ペアを属性とする配列形式でデータを格納
  • ドキュメント型データベース:テーブルではなくドキュメントとしてデータを格納するデータベース
  • .
  • Wide-Columnデータベース:
  • データベース、カラムのデータを集中的に管理
  • グラフィックデータベース:データ間の関係
  • をグラフィックに類似した形式で整理する.
    SQLとNoSQLの違い
  • データストア
  • リレーショナル・データベースSQLを使用して、事前に作成するパターンに従ってデータ
  • を指定したフォーマットで格納する.
  • NoSQLは、以下に示すように、キー値、ドキュメント、グラフィックフォーマットなどで格納できます.
  • アーキテクチャ(Schema)
  • SQL固定フォーマットが必要なアーキテクチャ
  • NoSQLでは、1つの属性に対してすべての列のデータ
  • を入力することなく、動的な林行を追加するときにすぐに列を追加できます.
  • クエリー
  • リレーショナル・データベースは、テーブルのフォーマットとテーブル間のリレーションシップに基づいてデータを要求します.
  • 構造化クエリー言語(SQLなど)を使用して情報を要求
  • 非リレーショナル・データベース・クエリーは、クエリー・データ・グループ自体に重点を置き、非構造化クエリー言語(UnStructured Query Language)を使用してデータを要求することもできます.
  • 拡張性
  • SQLベースのリレーショナル・データベースは、通常、垂直に拡張された
  • です.
  • NoSQLデータベース横方向拡張
  • SQLベースのリレーショナル・データベースの使用例
  • データベースのACID属性を遵守する必要がある場合、
  • ソフトウェアで使用されるデータは構造化され、一致している:
  • NoSQLベースの非リレーショナル・データベースの使用例
  • に格納されているデータ量は非常に大きく、ほとんどまたはまったくデータ構造がありません.
  • クラウドコンピューティングとストレージスペース
  • を活用
  • サービスの迅速な導入とデータ構造の頻繁な更新
    Schema&Query Design
  • アーキテクチャ:データベースがデータをどのように組織するか、および異なるエンティティ間の関係を記述する
  • フィールド(列):
  • 、テーブル内の列を指す
  • レコード:テーブルの1行に格納情報
  • キー:テーブル内の各レコードの区切り値.各レコードは一意でなければならず、プライマリ・キー(primary key)や外部キー(foreignkey)などがある.
  • 関係タイプ
  • 1:1関係:各テーブルのレコードが別のテーブルのレコードに関連付けられている場合
    しかし、このような関係はあまり見られない.1対1なら、一緒に書いたほうがいいです.
  • だからです.
  • 1:N関係:テーブル内の各レコードが複数のレコードに関連付けられている場合、
  • N:N関係:複数のレコードは複数のレコードの関係を有する.二つの一対の多関係と見なすことができる.
    新しいテーブルを作成して
  • を管理(結合テーブル)し、2つのテーブルの間に1対多の関係を確立します.
  • 自己参照関係

  • Join
  • LEFT JOIN:表1の全ての記録と表2の一致記録
  • SELECT column_name(s)
    FROM table1
    LEFT JOIN table2
    ON table1.column_name = table2.column_name;
  • INNER JOIN:2つのテーブルの一致値のみ
  • SELECT column_name(s)
    FROM table1
    INNER JOIN table2
    ON table1.column_name = table2.column_name;

    Node.js mysql
    var mysql = require('mysql');
    
    var con = mysql.createConnection({
      host: "localhost",
      user: "yourusername",
      password: "yourpassword",
      database: "mydb"
    });
    
    con.connect(function(err) {
      if (err) throw err;
      var sql = "INSERT INTO customers (name, address) VALUES ('Michelle', 'Blue Village 1')";
      con.query(sql, function (err, result) {
        if (err) throw err;
        console.log("1 record inserted, ID: " + result.insertId);
      });
    });
    Sprint-C Marketデータベースの進捗状況...