📦 Database/Basic2023. 4. 7. 23:18Optimizer & Hint

💡 Optimizer SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로(최저비용)를 생성해주는 DBMS 내부의 핵심 엔진이다. 사용자가 쿼리문으로 결과를 요청하면, 이를 생성하는데 필요한 처리경로는 DBMS에 내장된 옵티마이저가 자동으로 생성한다. 옵티마이저가 생성한 SQL 처리 경로를 실행계획(Execution Plan)이라고 한다. Optimizer의 SQL 최적화 과정 사용자가 작성한 쿼리 수행을 위해, 실행될 만한 실행 계획을 찾는다. Data Dictionary에 미리 수집해놓은 오브젝트 통계 및 시스템 통계 정보를 이용해서, 각 실행 계획의 예상 비용을 산정하며 각 실행 계획을 비교해서 최저 비용을 갖는 하나를 선택 및 실행한다. Parser Optimizer Row_Source SQL_..

📦 Database/Basic2023. 4. 7. 23:16Schema & Query Design - 2

💡 SQL을 사용해 ERD 설계하기 ERD 설계 그림의 표를 보고 명령어를 작성하여 ERD를 설계 해보자. Step 1 user , content 테이블 생성, id의 pk를 content의 fk로 연결 Step 2 최종 완료 💡 데이터베이스 정규화 Data redundancy (데이터 중복) 실제 데이터의 복사본 or 부분적 복사본 일관된 자료 처리의 어려움 저장공간 낭비 효율성 감소 Data integrity (데이터 무결성) 정확성,일관성 유지 Anomaly(이상현상) 갱신이상 (update anomaly) 동일 데이터가 여러 행(레코드)에 있을때 어떤걸 갱신해야 하는지에 대한 논리적 일관성 없음 으로 인해 발생 ex) Employee ID가 동일한 레코드의 경우 어떤 데이터를 갱신해야 하는지 모를..

📦 Database/Basic2023. 4. 7. 23:13Schema & Query Design - 1

💡 Schema Design Teachers : Classes = 1:N의관계 / Classes : Students = N:N의 관계 Schema = 데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티간의 관계에 대한 설명 Entity = 테이블(객체와 같은 개념) Record = 테이블에 저장된 요소, 행렬로 치면 행(row)으로 볼수있다 Column = 열 tuple = 행 1:1 관계의 데이터 정렬 방식 각 전화번호가 단 1명의 유저와 1:1로 매칭됨, 그 반대도 동일하다면 1:1관계라고 할 수 있음 1:N 관계의 데이터 정렬 방식 Teacher테이블의 Classes 컬럼을 Classes의 primary key(ID)를 참조하면 ClassID는 foreign key라고 불린다. 만약 Teac..

📦 Database/Basic2023. 4. 7. 23:09RDBMS

💡 데이터베이스가 필요한 이유 In-Memory 끄면 데이터가 사라짐 File I/O 원하는 데이터만 가져올 수 없고 항상 모든 데이터를 가져온 뒤 서버에서 필터링 필요 Database 필터링 외에도 File I/O로 구현이 힘든 관리를 위한 여러 기능들을 가지고 있는 데이터에 특화된 서버 기본 문법 💡 데이터베이스 관련 명령어 # DB 생성 / 사용 CREATE DATABASE 디비명; USE 디비명; # Table 생성 CREATE TABLE user ( id INT PRIMARY KEY AUTO_INCREMENT, name varchar(255), email varchar(255) ); # Table 정보 조회 DESCRIBE user; # SELECT # 1.일반 문자열 SELECT 'he..

image