데이터 모델링은 현실 세계를 데이터베이스로 표현하기 위해 추상화한다.데이터 모델링을 하기 위해서는 고객과의 의사소통을 통해 고객의 업무 프로세스를 이해해야 한다. 고객의 업무 프로세스를 이해한 후 데이터 모델링 표기법을 사용해서 모델링을 한다.데이터 모델링은 고객이 쉽
AS 명령어로 별칭을 붙일 수 있습니다. 컬럼명이 길어서 바꾸고 싶은 경우 또는 테이블명을 바꾸고 싶을 경우 사용합니다. 별칭의 이름이 ASCII가 아닌 문자열일 경우 쌍 따옴표(")를 붙여야 합니다. SELECT \*,(컬럼1 \* 컬럼2) AS "금액" FROM 테
Database 관련 명령어 Database 생성 데이터가 저장되는 테이블들을 모아놓은 논리적 공간을 Database라 합니다. CREATE database 데이터베이스명; Database 사용 선언 어떤 데이터베이스를 사용할 것인지 선언합니다. USE 데이터
그룹화 GROUP BY 명령어를 통해 특정 컬럼을 기준으로 그룹화할 수 있습니다. 그룹화를 하면 조회된 데이터를 통계 내기 위한 집계 함수 (avg, sum)을 사용하기에 용이해집니다. SELECT name, COUNT(name), SUM(quantity) FRO
테이블에 여러 데이터들이 무작위로 섞여 있으면 조회하는데 시간이 오래 걸린다. 이 때 검색 알고리즘을 사용하는 인덱스를 이용하면 검색 속도를 향상시킬 수 있다. 1) 인덱스 테이블 생성 인덱스 테이블을 생성하는 명렁어의 기본 구조는 CREATE INDEX 인덱스테이블명
IN은 조건에 만족하는 row를 찾는 것이고 EXISTS는 EXISTS이하 절이 true인지 아닌지를 체크합니다. 둘의 차이점은 Null 값을 처리하는 부분에서 발생합니다. NOT IN은 Null 값이 WHERE 절의 조건을 만족하더라도 결과에서 제외됩니다. NOT E
Flask나 FastAPI를 이용하면서 SQLAlchemy를 주로 이용하고 있고 db를 정의할 때 정확하게 알고 사용하고 있지 않는다는 생각이 들어 찾아보기로 하였습니다다. pool_size와 같은 인자를 넘겨주고는 하는데 이를 검색하다 커넥션 풀에 대해서 알게되었고,
여러 코드를 보던 중에 SQLAlchemy를 사용하더라도 스타일이 다른 것을 보게되었다. 어떤 코드에서는 session.query를 어떤 코드에서는 직접적으로 select, update, delete를 session.execute를 통해 query를 진행하는 경우가 있
사용자의 다양한 요구 사항을 고려하여 데이터베이스를 생성하는 과정 요구 사항 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현설계 과정 -> 오류 발견 -> 변경 필요 -> 이전 단계 설계 내용 변경 가능 사용자의 요구 사항을 수집 분석하여 개발할 데이터
에러 메시지는 다음과 같습니다. 원격 서버에서 MySQL 서버로 단순 커넥션한 뒤 close 하게 되면 MySQL은 비정상적인 접속으로 판단하여 해당 IP를 블락킹하게 됩니다. 이때 MySQL의 비정상적인 접속 요청 수를 카운트하게 되는데 global max_conne