第11週コードstaitz-深化[Linux]準備テスト[データ構造/アルゴリズム]符号化/[データベース]関係データベース
26559 ワード
本当に複雑な1週間でした.以前学んだLinuxは、いくつかの深化した内容を学び、アルゴリズム問題の高度な内容とバックグラウンドデータベースを学びました.一番面白い部分はやはりデータベース部分です.アルゴリズムの問題は基本的な枠組みだけを知っていれば、問題を解決するのは難しくないが、同僚の本当に重要な部分であることを改めて強調した.🤨 一人で勉強するときはもっとよくて、いろいろな方法のコードを書いて、復習の過程でとても役に立ちます.
学習に関係なく、学習グループのメンバーと一緒に小さなプロジェクトを行っており、本当に総合的な学習の1週間です.学習内容を直接実施・実行する際にエラーが発生し,データの受信・送信時にまだ完全に整理されていない場合にコードを記述するため,複雑な点が多い.しかし、間違ったところを見て修正され、新しい機能が追加されて正常に動作し、達成感が大きい.😍 次のプロジェクトをどのように始めるべきかを明確に知っています.これは各方面から啓発された1週間です.
->If、オペレーティングシステムにログインしているユーザーがフォルダまたはファイルの所有者と異なる場合はsudoを使用します
Acess classoperatorAcess typeu(user)+ (add acess)r (read)g(group)- (remove access)w (write)o(other)= (set exact access)x (execute)a(all)
ex) PermissionNumberRead (r)4Write (w)2Execute (x)1
ex) 1個選択 選択以外はn-1個=>設定手順差異のみ
CREATE DATABASE (TABLE) DROP DATABASE (TABLE) TRANCATE TABLE=>復旧不可 DELETE TABLE (WHERE) ALTER TABLE (ADD, DROP)
データベーストランザクションにACID属性がある
学習に関係なく、学習グループのメンバーと一緒に小さなプロジェクトを行っており、本当に総合的な学習の1週間です.学習内容を直接実施・実行する際にエラーが発生し,データの受信・送信時にまだ完全に整理されていない場合にコードを記述するため,複雑な点が多い.しかし、間違ったところを見て修正され、新しい機能が追加されて正常に動作し、達成感が大きい.😍 次のプロジェクトをどのように始めるべきかを明確に知っています.これは各方面から啓発された1週間です.
11週間勉強した内容の中で整理したい内容
[Linux]深化
파일과 폴더 권한 확인
->ls-l、コマンドchmodを使用してフォルダまたはファイルの読み取り、書き込み、実行権限を変更できます.->If、オペレーティングシステムにログインしているユーザーがフォルダまたはファイルの所有者と異なる場合はsudoを使用します
drwxrwxrwx => d/rwx/rwx/rwx => directory(파일인 경우 -)/owner/group/other
r: read permission. w: write permission, x: execute permission
Symbolic method
ex)
chmod g-x filename
chmod a=rw hello.js
chmod a+rx hi.js
Absolute form
ex)
chmod 744 hello.js
chmod 310 hi.js
터미널에 export로 환경변수 확인 & 추가 가능
: export check="well"
echo와 환경변수 입력 시 값 확인 가능
: echo $check
dotenv 설치 시 자바스크립트에서 환경변수 사용 가능
: npm init => npm i dotenv
Node.js에서 환경변수 영구 적용
: .env
[データ構造/アルゴリズム]符号化のテストの準備
순열, 조합, 중복순열 모두 같은 로직
순열(nPr)
function permutation (arr, selectNum) {
let result = [];
if (selectNum === 1) return arr.map(el => [el])
arr.forEach((v, idx, arr) => {
const fixer = v
const restArr = arr.filter((_, index) => index !== idx)
const permuationArr = permutation(restArr, selectNum-1)
const combineFixer = permuationArr.map(el => [fixer, ...el])
result.push(...combineFixer)
})
return result
}
중복순열(nπr)
function permutation (arr, selectNum) {
let result = [];
if (selectNum === 1) return arr.map(el => [el])
arr.forEach((v, idx, arr) => {
const fixer = v
const restArr = arr
const permuationArr = permutation(restArr, selectNum-1)
const combineFixer = permuationArr.map(el => [fixer, ...el])
result.push(...combineFixer)
})
return result
}
조합(nCr)
function combination (arr, selectNum) {
let result = [];
if (selectNum === 1) return arr.map(el => [el])
arr.forEach((v, idx, arr) => {
const fixer = v
const restArr = arr.slice(idx+1)
const combinationArr = combination(restArr, selectNum-1)
const combineFixer = combinationArr.map(el => [fixer, ...el])
result.push(...combineFixer)
})
return result
}
멱집합(2^n)
const subsets=(nums) => {
const res = []
const dfs = (start = 0, arr = []) => {
res.push(arr)
for(let i = start; i<nums.length; i++) {
dfs(i+1, [...arr, nums[i]])
}
}
dfs()
return res
}
최대공약수(GCD)
const gcd = (a, b) => a % b === 0 ? b : gcd(b, a % b)
최소공배수(LCM)
const lcm = (a, b) => a*b/gcd(a, b)
[データベース]リレーショナル・データベース
SQL(Structured Query Language)
:データベースに適したプログラミング言語で、必要なデータを取得または挿入するためにデータベースにクエリーを送信する데이터베이스 관련 용어
중복된 값 제거
SELECT DISTINCT country FROM Customers
업데이트
UPDATE Customers
SET City='Oslo'
제거
DELETE FROM Customers
WHERE Country = 'Norway'
최대, 최소, 평균, 합계
SELECT MIN (Price) => MAX, AVG, SUM
FROM Products
특정 값 조건
SELECT * FROM Customers
WHERE NOT City ='Berlin'
데이터 갯수
SELECT COUNT(*)
FROM Products
WHERE Price = 18
특정 단어 배열 조건
SELECT * FROM Customers
WHERE City LIKE 'a%' => '[acs]%', '[a-x]%', '_a%'
정렬
SELECT * FROM Customers
ORDER BY City DESC
특정 값 여러개 설정
SELECT * FROM Customers
WHERE Country IN ('Korea', 'USA')
범위 지정
SELECT * FROM Products
WHERE Price BETWEEN 10 AND 20
별칭
SELECT *
FROM Customers AS Consumers
결합
SELECT *
FROM orders
LEFT JOIN Customers
ON orders.CustomerID = Customers.CustomerID
그룹화
SELECT COUNT(CustomerID),
Country
FROM Customers
GROUP BY Country
<SELECT문의 실행순서>
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
관계형 데이터베이스 / 비관계형 데이터베이스
관계형데이터베이스(SQL) : 테이블의 구조와 데이터 타입을 사전에 정의. 알맞은 형태의 데이터만 삽입 가능
행과 열로 구성된 테이블에 데터 저장
원하는 정보를 쿼리할 수 있음 => 스키마 뚜렷 (테이블 간의 관계를 직관적 파악)
비관계형데이터베이스(NoSQL) : 데이터가 고정되어 있지 않은 데이터베이스
데이터를 읽어올 때 스키마에 따라 데이터를 읽어옴
<관계형데이터베이스 기본키워드>
- 데이터(data): 각 항목에 저장되는 값
- 테이블(table or relation): 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으로 축적
- 칼럼(column or field): 테이블의 한 열을 가르킴
- 레코드(record or tuple): 테이블의 한 행에 저장된 데이터
- 키(key): 테이블의 각 레코드를 구분할 수 있는 값. 각 레코드마다 고유한 값 존재
기본키(Primary key) / 외래키(Foreign key)
트랜잭션
:複数のタスクを組み合わせた実行ユニット(全タスク完了→正常クローズ)データベーストランザクションにACID属性がある
<ACID>
Atomicity(원자성): 모든 작업이 전부 성공하거나 전부 실패해서 결과를 예측할 수 있도록 함
부분적 실패 => 전부 실패
Consistency(일관성): 데이터베이스의 상태는 이전과 같이 유효해야 함
유효한 상태는 다를 수 있음 but, 상태에 대한 일관성 변하지 않음
Isolation(격리성, 고립성): 모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 함
트랜잭션이 동시에 실행 or 연속실행시 데이터베이스 상태 동일
Durability(지속성): 트랜잭션이 실행, 오류 발생시도 해당 기록은 영구적이어야 함
1:1관계
:一方のレコードが他方のテーブルの一方のレコードに関連付けられている1:N관계
:1つのレコードが複数の異なるレコードに関連付けられている場合N:N관계
:複数のレコードが他のテーブルの複数のレコードと関係がある場合자기참조관계
Reference
この問題について(第11週コードstaitz-深化[Linux]準備テスト[データ構造/アルゴリズム]符号化/[データベース]関係データベース), 我々は、より多くの情報をここで見つけました https://velog.io/@hjin9902/코드스테이츠-11주차-Linux-심화-자료구조알고리즘-코딩-테스트-준비-데이터베이스-관계형-데이터베이스テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol