Section 3_Sprint 1
Day1
開発環境
cd{}:{}に移動
ls:現在の場所にはどのようなファイルがありますか.
pwd:現在位置について
touch{ファイル名.拡張子}:ファイルex.new fileを作成します.db/new_file.py
git clone https://github.com/{github_id}/ds-sa-simple-git-flow
git add .
git commit-m「メッセージ」
git push origin main
conda deactivate
conda create -n ds-sa-simple-git-flow python=3.8
pip list
Day2
SQL - 01
In-Memory
:Pythonでプログラムを処理する場合、プログラムを実行するときのみデータが存在する->プログラムの実行が終了すると、使用するデータも消えます
File I/O
:スプレッドシートやCSVのようなファイルの読み取り方式で動作する形式で、ファイルの読み取り、ファイルの破損、または複数のファイルの同時処理のたびに、データ量が大きいほど困難になる관계형 데이터베이스
:1つのCSVファイルまたはExcelテーブルを1つのテーブルに格納することができ、1回に複数のテーブルを持つことができるため、SQL
で簡単にデータをインポートできます.SQL
SQL JOIN
構文の作成順序と実行順序
# 작성 순서
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
# 실행 순서
FROM
ON
JOIN
WHERE
GROUP BY
HAVING
SELECT
DISTINCT
ORDER BY
DB
なぜDataBaseを使うのですか?
プライマリ・キーと外部キーは何ですか?
keyword
1:1関係
テーブル内の1つのレコードは、別のテーブル内の1つのレコードに関連付けられます.
各電話番号にはプレイヤーが1人いますが、逆も同様です.
1:N関係
表の各レコードは、複数のレコードに関連付けられています.
最も一般的な関係
1人のプレイヤーは複数の電話番号を持つことができるが、逆にX=1つの電話番号が1人のプレイヤーしかいない
N:N関係
複数レコードは複数レコードの関係を持つ
조인 테이블
の作成と管理両方の方向に複数あります
一人のお客様は複数の観光製品を持つことができ、一人の観光製品も複数のお客様を持つことができます.
自己参照関係
プレイヤー1人につき1人の推薦者を持つことができるが、推薦者の立場から見ると複数のプレイヤーを持つことができる=複数回推薦できる
≪モード|Mode|oem_src≫:データベース内のデータの組織および異なるエンティティ間の関係を説明します.データベースの青写真
データモデリングの実行=シナリオの作成
Day3
SQL - 02
リレーショナル・データベースの機能の強化
取引
COMMIT
トランザクションは、データベースに反映するために決定信号を発行する必要があります.
確定信号を送信しないと、データベースの内容が変化する
確定信号=COMMIT
ROOLLBACK
COMMITとは逆に
将来変更される操作の説明を取り消す
=トランザクション中に、これまでに実行されたすべてのコンテンツがキャンセルされます.
げんしせい
トランザクションを構成する操作はすべて成功または失敗しなければならない.
コンシステンシ状態コンシステンシ
トランザクションの前および後のデータベースのステータスは、前の有効=データベースの制約またはルールに基づいたデータベースでなければなりません.
Isolation孤立性
1つのトランザクションは別のトランザクションから独立している必要があります=同時実行時と連続実行時のデータベースのステータスは同じである必要があります
Durability持続性
トランザクションが正常に実行された場合、実行時エラーやシステムエラーが発生しても、トランザクションのログは永続的でなければなりません.
分割->適用(集約演算)->マージ
WHERE vs HAVING
WHEREはGROUP BYより前に動作するため、集約演算ができない
正規化
表を効率的に整理する方法
第一正規化~第五正規化、半正規化
通常は第3正規化
https://mr-dan.tistory.com/10
Day4
DB API
DBeaver
:cursor、実行SQL
:connectionクラウドデータベース
서비스://유저_이름:유저_비밀번호@호스트:포트번호/경로
なぜ
connect
セッションを開いたら、すぐにクエリーをキャンセルできますか?
接続方法で接続=セッションを開く
connect
は、データベースに関連付けられたセッションを含むcursor
を作成して、セッションを介してデータベースとコミュニケーションをとり、クエリを回避クエリーを無効にするには、どのような方法を使用しますか?
cursor.execute
クラウドサービスを使用するデータベース
外部アクセス性が高く、管理コストが低く、拡張性が高く、メンテナンスコストが低い
cursor
が作成されました(=管理できないリスク).# db 테이블에 csv데이터 넣기
import psycopg2 # db연결
connection = psycopg2.connect (
host =
user =
password =
database =
)
cur = connection.cursor()
cur.execute("""CREATE TABLE table_name(
id INTEGER PRIMARY KEY,
name VARCHAR(4));
""")
import csv
index = 0 # 첫 열이 인덱스일때
with open('file_name.csv' ,'r') as file:
row = csv.reader(file)
next(row) # 다음 인덱스부터 읽기
for i in row:
cur.execute(f"INSERT INTO table_name (columns name ---) VALUES({index},{i[0]} ---);")
index += 1
connection.commit()
cur.close()
connection.close()
csv : https://m.blog.naver.com/pjok1122/221590220300 # cursor.fetchone
## 한번 호출에 하나의 row만을 가져올 때 사용, fetchone()을 여러 번 호출하면 호출할 때마다 한 row씩 데이터를 가져오게 됨
# cursor.fetchall
## 모든 데이터를 한꺼번에 가져올 때 사용
# cursor.fetchmany(n)
## n개 만큼의 데이터를 한꺼번에 가져올 때 사용
Reference
この問題について(Section 3_Sprint 1), 我々は、より多くの情報をここで見つけました https://velog.io/@jiyoungemma/Section3Sprint1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol