Others

https://yeongunheo.tistory.com/entry/MN-%EA%B4%80%EA%B3%84 M:N 관계M:N 관계 M:N 관계는 관계를 가진 양쪽 당사자 모두에서 1:M관계가 존재할 때 나타나는 모습이다. 학생과 과목의 관계를 예로 들 수 있다. 학생 입장에서는 여러 과목을 수강할 수 있고, 과목 입장yeongunheo.tistory.com
리눅스 환경에서 next.js 프로젝트를 실행하기 위해선 node 버전이 14버전부터 어쩌고 뭐 가능햇음 이전에는 npm 많이 사용했는데 이번에 npm 으로 죽어도 안되길래 (물론 내가 못해서겠지만 . . .)nvm 도움으로 해결하게 됨 1. nvm 설치curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash2. 원하는 버전 설치nvm use ex) nvm use v12.18.1  출처 : https://www.freecodecamp.org/korean/news/how-to-install-node-js-on-ubuntu-and-update-npm-to-the-latest-version/
비식별(약한) 관계개체가 독립적두 테이블에 관계가 성립외래키가 기본키에 참여하지 않음부모 테이블의 기본키나 유니크 키를 자식 테이블이 외래키로 이용즉, 부모 데이터가 없어도 자식 테이블에 데이터를 추가할 수 있음구조변경에 자유롭지만 데이터 정합성을 위한 로직이 따로 필요식별(강한) 관계하나의 개체가 다른 개체 없이 독립적으로 존재하지 못함외래키가 기본키에 참여부모 테이블의 기본키나 유니크 키를 자식 테이블이 자신의 기본키로 사용한다.데이터의 정합성 유지를 DB에서 검증가능하나 구조 변경에 어려움이 있다. Forward Enginner 툴로 DB 생성워크벤치로 DB 생성을 할 수 있지만 공부 단계니까 그냥 직접 쓸거임 !그냥 이런 기능이 있어서 적어둔것메뉴탭 databasc - forward enginne..
INDEX테이블의 row 가 insert 가 되면서 index 객체에도 row_id 와 기준이 되는 pk 값이 들어온다 ! index 는 기본 설정값은 오름차순이다 ! 그래서 row 가 들어올 때 값을 비교해서 index 에 저장이 된다 . => 순서가 있다 ! 예를 들어 데이터가 들어올 때 d009 값이 들어오고 d005 값이 들어온다면 비교해서 d005 가 먼저 오게 되고,또 다시 d002 데이터가 들어오면 원래 있던 데이터에서 다 비교 되지 않고 순서대로 비교  row 가 한꺼번에 들어올 때 index 도 한꺼번에 데이터가 추가가 된다index 는 추가되면서 비교를 하게 되는데 그래서 작업 속도가 느려지는 이유 중 하나 ! 그래서 한꺼번에 데이터가 들어올 때 작업의 속도가 느려지는 것을 방지하고자 ..
# database/p240617/view.sql1. view 란 ?원래 실질적인 테이블이 있는 일부만 보여지게 하는 것 ! 실질적으로 있는 테이블을 기반 테이블(base table), 물리적 존재라 부른다.view 는 테이블은 아니고 일부 쿼리문 ! 논리적인 테이블, 가상 테이블이라 부른다. 가상의 테이블물리적으로 존재하지 않음 → 논리적 존재쿼리문(select) → 쿼리 재사용추가, 삭제, 수정에 제약이 따를 수 있음뷰는 인덱스를 가질 수 없음 --> 실제 테이블이 아니기 때문보안의 효과를 가짐2. 문법create [or replace] view 뷰이름asselect 컬럼명from 테이블명; 그럼 view 생성해보자# DB 선택use test;# [view] emp 생성create view empas..
요구사항 수집 및 분석↓1. 개념적 설계 - ER 모델(ERD), 이미지, 개념적 스키마↓2. 논리적 설게- 정규화(entity, 릴레이션, 물리적 설계), 논리적 스키마↓3. 물리적 설계- DB 개체 정의, 테이블 설계↓DB 구현
# fullstack/database/p240610/select_group_function.sql[그룹 함수] 집계 함수count(컬럼명) : 로우 개수 - null 제외count(*) : 로우 개수 - null 포함sum(컬럼명) : 합avg(컬럼명) : 평균max(컬럼명) : 최대값min(컬럼명) : 최솟값[문법] 위치 다르게 하면 Syntax Errorselect 컬럼명 1, 그룹함수(컬럼명 2) from 테이블명 // 여기까지 필수where 조건 // row 와 관련group by 컬럼명 2having 조건 [문제 1] 총 사원(직원) 수select count(emp_no) from employees; # emp_no 의 개수 반환select count(emp_no), count(*)..
# fullstack/database/p240611/select_subquery.sql 서브 쿼리는 사용 위치에 따라 중첩 서브 쿼리, 스칼라 서브 쿼리, 인라인 뷰로 구분됨[서브 쿼리] subquery* 서브 쿼리 : 쿼리문 내 쿼리문select 절, from 절, where 절에 들어올 수 있음들어오는 위치에 따라 구분이 됨* 스칼라 서브쿼리 (scalar subquery) : select 절, 단일행 / 단일컬럼 반환* 인라인 뷰 (inline view) : from 절, 반드시 하나의 테이블 반환 * 중첩 서브쿼리 (nested subquery) : where 절, 단일행 or 다중행 반환 // 가상의 테이블를 뷰라고 말함, 쿼리가 실행되면서 만들어지는 뷰 중첩 서브 쿼리d005 부..