SQL 12

[SQLite3] DDL 실습 ( CREATE / RNAME / ADD / DELETE ) / CSV 파일 가져오기

VSCODE에서 SQLITE3 EXTENSION으로 실습하였습니다 ! CSV 파일을 sqlite로 가져오는 방법 1. 폴더에 코드를 실행할 sql 파일 / 만든 테이블을 저장할 sqlite3 파일 / 활용할 csv 파일을 넣어 놓는다 2. 미리 csv 파일을 담을 테이블을 sql 파일에만들어둔다. CREATE TABLE HEROES( id INTEGER PRIMARY KEY AUTOINCREMENT, 이름 TEXT NULL, 직업 TEXT NULL, 능력 TEXT NULL, 국적 TEXT NULL, 소속회사 TEXT NULL, 나이 INTEGER NULL, 가입날짜 DATE NULL ); open Database로 테이블이 제대로 생성됐는지 확인 잘 생성됐다 ! 3. csv 파일 테이블에 불러오기 터미널..

SQL 2023.04.05

데이터베이스 성능 / 인덱스

데이터베이스 성능이란? 클라이언트(사용자) 요청에 대한 응답시간과 시간당 처리 할 수 있는 처리량이다. 1. Current User : 동시사용자 (1) Active User : 서버에 부하를 발생시키는 사용자 (클릭+이동) (2) Inactive User : 서버에 요청을 보내고 있지 않은 사용자 (그냥보기) 2. TPS(Transaction Per Second) : 1초에 몇개의 트랜잭션을 처리했는가 3. Response Time : 요청 한 후부터 응답을 받을 때 까지의 시간 4. Resource : 한정된 값을 가진 시스템 구성 요소 (RAM, Memory) 데이터베이스 성능의 특성 경합부하 구간에서 Response Time이 급격히 증가함. TPS가 꺾이기 시작하는 구간부터가 고부하구간임. 성능..

SQL 2022.10.10

백업 및 복구

로그 선행 기입 기법 (write-ahead logging, WAL) 시스템에서 모든 수정은 적용 이전에 로그에 기록된다. 데이터베이스의 데이터 파일을 로그 레코드로 사용하여 동기화 디스크에 연속해서 쓰기 때문에 무작위로 쓰는 것 보다 성능이 좋다. 데이터베이스 버퍼를 이용해 데이터 파일 변경을 효율적으로 진해애함. 데이터베이스 버퍼 로그 - 버퍼 - 데이터 갱신 대상의 데이터를 포함한 블록이 버퍼 풀에 있는지 확인. 없을 경우 데이터 파일로 부터 해방 블록을 읽어 들임. 버퍼 풀 내에 해당 블록을 갱신함. ( Dirty 발생 ) / Dirty의 내용이 데이터 파일에 적용되는 거임. 갱신 내용이 Commit과 함께 로그에 기록. 갱신 되었지만 데이터 파일에 쓰이지 않은 블록은 Dirty 블록이 된다. 갱..

SQL 2022.10.09

테이블 설계

테이블이란 ? 관계형 데이터베이스에서 데이터를 관리 및 저장하는 장소 데이터의 효율적인 관리 및 적절한 조작이 매우 중요하다. 기본키(PRIMARY KEY)의 중요성 특정 집합에서 특정 행을 유일하게 식별할 수 있는 속성 기본키는 절대 중복되면 안된다. 반드시 기본키를 설정해야함 / 단, 업무상 이유로 기본키가 없는 테이블이 존재하는 곳도 있음 정규형 : 테이블을 정의하는 기본 형태 정규형을 제대로 지키지 않으면 정규화 위반임. 정규형의 목적은 제대로된 데이터 모델링을 설계하기 위함이다. 성능 향상이 아님. 1. 제 1정규형(1NF) 위반 테이블의 셀에 여러개의 값을 포함하지 않는다. ex) 연락처 컬럼에 010-1222-2222,qwer@qwer.com 이렇게 두가지 값이 포함되면 안됨. -> 해소 방..

SQL 2022.10.09

DA# 데이터 모델링 실습

DA#을 이용해 간단한 모델링 실습을 해보았다. 우선 새 프로젝트와 모델을 생성한다. 엔터티를 누르고 드래그하면 저렇게 상자가 생성된다. 논리 데이터 모델링은 엔터티, 물리 데이터 모델링은 그냥 테이블이라고 표현함 생성된 엔터티를 더블클릭하면 내용을 편집할 수 있다. 원하는 테이블 명을 작성하였다. 그 후, 원하는 속성을 채워넣어주면 된다. 논리 데이터 모델링은 속성 / 물리 데이터 모델링은 컬럼이라고 표현함 첫번째 엔터티가 생성되었다. 원하는 엔터티를 2개 더 만들어 주었다. 그 후 엔터티들끼리 관계선을 만들어 주기 위해, 관계선으로 연결하였다. 생성된 관계선을 더블클릭 하면, 내용을 수정할 수 있다. 식별자 사용을 TRUE로 설정하고, 관계명도 추가해주었다. 한개의 고객은 여러개의 주문을 할 수 있는..

SQL 2022.10.09

트랜잭션

트랜잭션이란? 데이터베이스 관리 시스템에서 상호작용의 단위 / 어떤 요청이 끝난 상태 데이터베이스 기능 중 가장 큰 기능 임. 쿼리 하나가 실패하면, 데이터베이스 시스템은 전체 트랜잭션 또는 실패한 쿼리를 롤백한다. 트랜잭션의 4대 특징 ACID 1. 원자성(Atomicity) : 무조건 전부 성공하거나, 전부 실패해야함 COMMIT : 처리 확정 ROLLBACK : 문제 발생 시 첫 과정 직전 상태로 복귀 2. 일관성(Consistency) : 데이터 조작 전후에 일관성 유지 필요 3. 고립성(Isolation) : 여러 사용자가 동시에 데이터 조작을 실행할 경우 각 처리가 모순 없이 실행되어야함. 4. 지속성(Durability) : 한번 데이터가 변하면 그 상태를 유지하는 것. 트랜잭션이 Commi..

SQL 2022.10.09

연습문제풀이

PRODUCTS 테이블에서 LIST_PRICE의 가격이 평균 가격보다 큰 행(집합)의 PRODUCT_ID, PRODUCT_NAME, LIST_PRICE 컬럼을 구하는 SELECT문을 작성하고 PRODUCT_NAME으로 정렬하라. SELECT A.PRODUCT_ID, A.PRODUCT_NAME, A.LIST_PRICE FROM PRODUCTS A WHERE A.LIST_PRICE > ( SELECT AVG(K.LIST_PRICE) FROM PRODUCTS k) ORDER BY A.PRODUCT_NAME; 먼저 AVG(LIST_PRICE) 구하는 서브쿼리를 이용하여 풀어야했음. 그리고 메인 쿼리에서 PRODUCT_NAME으로 정렬함. CUSTOMERS 테이블에서 CREDIT_LIMIT의 값이 가장 큰 10건..

SQL 2022.10.05

INSERT / UPDETE / DELETE

◇ 요약 ◇ INSERT INTO COLUMN VALUES ( 데이터 ) ; : COLUMN에 데이터 추가 UPDATE 테이블 SET 수정할내용 WHERE 조건 : 조건에 해당하는 열의 내용을 수정한다 DELETE FROM 원하는 테이블 WHERE 조건; :조건에 해당하는 행 삭제 DELETE FROM 원하는 테이블; : 해당 테이블 전부 삭제 CREATE TABLE ~~~ AS SELECT : CTAS 원하는 COLUMN만 골라서 테이블 만들 때 INSERT DROP TABLE DISCOUNTS; CREATE TABLE DISCOUNTS (DISCOUNT_ID NUMBER GENERATED BY DEFAULT AS IDENTITY, DISCOUNT_NAME VARCHAR2(255) NOT NULL, A..

SQL 2022.10.05