728x90 반응형 DataBase12 [SQLD] SQL 기본 트랜잭션의 특징 원자성(Atomicity) 트랜잭션은 데이터베이스 연산의 전부가 실행되거나 전혀 실행되지 않아야 한다. (ALL OR NOTHING) 트랜잭션의 처리가 완전히 끝나지 않았을 경우는 실행되지 않은 상태와 같아야 한다. 일관성(Consistency) 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 한다. 트랜잭션 실행 후에도 일관성이 유지되어야 한다. 고립성(Isolation) 트랜잭션 실행 중에 생성하는 연산의 중간결과는 다른 트랜잭션이 접근할 수 없다. 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없다. 영속성(Durability) 트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적 보장이 되어야 한다. SQL 실행 순서(파싱-실행-인출) 파싱(Parsing) SQL문의.. 2023. 3. 12. [SQLD] 데이터 모델과 성능 반정규화(De-Normalization) 데이터베이스의 성능 향상을 위하여, 데이터 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 방법이다. 반정규화는 조회(SELECT)속도를 향상하지만, 데이터 모델의 유연성은 낮아진다. 반정규화를 수행하는 경우 정규화에 충실하면서 종속성, 활용성은 향상되지만 수행 속도가 느려지는 경우 다량의 범위를 자주 처리해야 하는 경우 특정 범위의 데이터만 자주 처리하는 경우 요약/집계 정보가 자주 요구되는 경우 반정규화 절차 대상 조사 및 검토 - 데이터 처리 범위, 통계성 등을 확인해서 반정규화 대상을 조사한다. 다른 방법 검토 - 반정규화를 수행하기 전에 다른 방법이 있는지 검토한다. 반정규화 수행 - 데이블, 속성, 관계 등을 반정규화 한다. 클러스터링(Cluste.. 2023. 3. 9. [SQLD] 데이터모델링(Data Modeling) 공부 중 헷갈리는 것들만 정리해보려고한다. 데이터 모델의 3가지 관점 (데이터, 프로세스, 데이터와 프로세스) 1. 데이터 : 비즈니스 프로세스에서 사용되는 데이터를 의미한다. 구조분석, 정적 분석 2. 프로세스 : 비즈니스 프로세스에서 수행하는 작업을 의미한다. 시나리오분석, 도메인분석, 동적분석 3. 데이터와 프로세스 : 프로세스와 데이터 간의 관계를 의미한다. CRUD(Create, Read, Update, Delete)분석 ERD 작성절차 1. 엔터티를 도출하고 그린다. 업무에서 관리해야하는 집합을 도출한다. 2. 엔터티를 배치한다. 엔터티를 도출한 후 엔터티를 배치한다. 중요한 엔터티를 왼쪽 상단에 배치한다. 3. 엔터티 간의 관계를 설정한다. 4. 관계명을 서술한다. 엔터티 간의 어떤 행위나 .. 2023. 3. 7. [SQL] 집계 함수(Aggregate function )/ 기본 함수와 연산 집계 함수(Aggregate function ) 값 집합에 대한 계산을 수행하고 단일 값을 반환 여러 행으로부터 하나의 결괏값을 반환하는 함수 SELECT 구문에서만 사용됨 COUNT : 그룹의 항목 수를 가져옴 SELECT COUNT(컬럼) FROM 테이블이름; AVG : 모든 값의 평균을 계산 SELECT AVG(컬럼) FROM 테이블이름; MAX : 그룹에 있는 모든 값의 최대값을 가져옴 SELECT SUM(컬럼) FROM 테이블이름; MIN : 그룹에 있는 모든 값의 최소값을 가져옴 SELECT MIN(컬럼) FROM 테이블이름; SUM : 모든 값의 합을 계산 SELECT MAX(컬럼) FROM 테이블이름; -- 계좌 잔액(balance)이 가장 높은 사람과 그 액수를 조회하려면? SELECT .. 2023. 3. 4. [SQL] LIKE 와일드카드 LIKE “query data based on pattern matching” 패턴 일치를 기반으로 데이터를 조회하는 방법 SQLite는 패턴 구성을 위한 2개의 wildcards를 제공 % (percent sign) 0개 이상의 문자 / 이 자리에 문자열이 있을 수도, 없을 수도 있다. _ (underscore) 임의의 단일 문자 / 반드시 이 자리에 한 개의 문자가 존재해야 한다 --LIKE statement : 패턴을 확인하여 해당하는 값을 조회하기 SELECT * FROM 테이블이름 WHERE 컬럼 LIKE '패턴'; wildcards 사용 예시와일드카드패턴의미 2% 2로 시작하는 값 %2 2로 끝나는 값 %2% 2가 들어가는 값 _2% 아무 값이 하나 있고 두 번째가 2로 시작하는 값 1___ .. 2023. 3. 3. [SQL] WHERE절 WHERE --기본설정 -- TABLE users 생성 CREATE TABLE users ( first_name TEXT NOT NULL, last_name TEXT NOT NULL, age INTEGER NOT NULL, country TEXT NOT NULL, phone TEXT NOT NULL, balance INTEGER NOT NULL ); --csv파일 정보를 테이블에 적용하기 .mode csv .import users.csv users .tables --특정 조건으로 데이터 조회하기 SELECT * FROM 테이블이름 WHERE 조건; -- users 테이블에서 age가 30 이상, 성이 ‘김’인 사람의 나이와 이름만 조회하려면? SELECT age, first_name FROM users .. 2023. 3. 3. [SQL] SQL (Structured Query Language) SQL (Structured Query Language) • 관계형 데이터베이스 관리시스템의 데이터 관리를 위해 설계된 특수 목적으로 프로그래밍 언어 • 데이터베이스 스키마 생성 및 수정 • 자료의 검색 및 관리 • 데이터베이스 객체 접근 조정 관리 DDL - 데이터 정의 언어 (Data Definition Language) 관계형 데이터베이스 구조(테이블, 스키마)를 정의하기 위한 명령어 CREATE / DROP / ALTER DML - 데이터 조작 언어 (Data Manipulation Language) 데이터를 저장, 조회, 수정, 삭제 등을 하기 위한 명령어 INSERT SELECT / UPDATE / DELETE DCL - 데이터 제어 언어 (Data Control Language) 데이터베이스.. 2023. 3. 3. [MySQL] 데이터베이스 생성하기 워크밴치 이용하여 데이터베이스 생성하기 먼저 MySQL을 실행 한 다음 워크밴치를 열어보자. 빨간색 표시한 스키마라고 적힌 버튼을 누르면 위와 같은 화면이 뜬다. 데이터베이스를 생성하는 실행문은 CREATE DATABASE [이름] 이다. 그 다음 번개모양 버튼을 누르면 실행된다. 실행버튼을 눌러도 아무런 변화가 없을 것이다. 이럴때는 새로고침 버튼을 눌러주면 된다. 새로고침버튼을 누른 후 생성한 데이터베이스가 뜨는 것을 볼 수 있다. 2023. 2. 28. [MySQL] MySQL 서버 접속(macOS) 1. MySQL 서버 실행 MySQL이 제대로 깔려 있다면 시스템설정을 눌렀을 때 맨 마지막 사이드바에 MySQL이 깔려 있는것이 보일 것이다. 그것을 누르면 위의 사진처럼 빨간색점이 보이는데, 이는 아직 서버를 시작하지 않았다는 것이다. 오른쪽에 Start MySQL Server버튼으로 MySQL 서버를 실행할 수 있다. 만약 맥을 켤 때마다 항상 자동으로 MySQL 서버를 실행하고 싶다면 그 아래의 체크 항목을 체크된 그대로 두면되고, 반대로 매번 지금처럼 수동으로 MySQL 서버를 실행하고 싶으면 체크를 해제하면 된다. Start MySQL Server버튼을 누르면 암호를 입력하는 창이 나온다. 암호를 입력하고 나면 초록불로 바뀌고 옆에 버튼이 Stop으로 바뀐 것을 알 수 있다. 서버를 종료하고싶.. 2023. 2. 28. 이전 1 2 다음 728x90 반응형