728x90

db 11

[DB] MySQL - SELECT 쿼리 실행되는 순서

SELECT select_list [ FROM table_source ] [ WHERE search_condition ] [ GROUP BY group_by_expression ] [ HAVING search_condition ] [ ORDER BY order_expression [ ASC | DESC ] ] FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY 1. FROM절의 테이블로부터 2. WHERE절의 조건에 맞는 데이터를 3. GROUP BY절로 그룹핑하고 4. HAVING절의 조건에 맞는 것을 5. SELECT절의 컬럼들을 선택해서 6. ORDER BY절에 맞게 정렬해서 리턴한다.

개발/CS 2022.05.20

[DB] SQL - DDL, DML, DCL, TCL (데이터 정의어, 조작어, 제어어)

★DDL (Data Definition Language) : 데이터 정의어 데이터베이스 객체(table, view, index, ...)의 구조를 정의한다. 테이블 생성, 컬럼 추가, 타입 변경, 제약조건 지정, 수정 등 CREATE - 데이터베이스 객체를 생성한다. ALTER - 기존에 존재하는 데이터베이스 객체를 수정한다. DROP - 데이터베이스 객체를 삭제한다. 테이블 생성 제약 조건 제약 조건이란 컬럼에 저장될 데이터의 조건을 설정하는 것이다. 제약조건을 설정하면 조건에 위배되는 데이터는 저장이 불가하다. 테이블 생성시 컬럼에 직접 지정하거나 constraint로 지정하거나 ALTER를 이용해서 설정이 가능하다. NOT NULL - 컬럼에 NULL 값을 저장할 수 없고 반드시 쿼리문을 이용하여 ..

개발/CS 2022.05.19

[DB] 데이터베이스 정규형 1NF, 2NF, 3NF (Normal Form)

정규형이란 릴레이션이 정규화된 정도이다. 정규형은 제1 정규형 ~ 제5 정규형과 보이스/코드 정규형까지 포함하면 총 6가지 정규형이 있다. 각 정규형마다 제약조건이 존재하고 정규형의 차수가 높아질수록 요구되는 제약조건이 많아지고 엄격해진다. 즉 정규형의 차수가 높아질수록 데이터 중복이 줄어 이상 현상이 발생하지 않을 가능성이 커진다. 그렇다고 항상 릴레이션을 제5 정규형을 만족하도록 구성해야 하는가 하면 그것은 아닐 것이다. 릴레이션의 특성을 고려하여 적합한 정규형은 선택해서 적용해야 한다. 간단하게 제1 정규형부터 제3 정규형까지 알아보자. 제1 정규형 (1NF) - 릴레이션의 모든 속성의 도메인이 원자 값만으로 구성되어 있어야 한다. 제1 정규형만 만족한다면 데이터의 중복으로 인해 이상 현상이 발생할..

개발/CS 2022.05.11

[DB] 데이터베이스 정규화와 이상 현상 (Normalization & Anomaly)

정규화란 이상 현상을 제거하기 위해서 데이터베이스를 올바르게 설계해 나가는 과정이다. 여기서 이상 현상이란 불필요한 데이터 중복으로 인해 릴레이션에 대한 데이터 삽입, 수정, 삭제 연산을 할 때 발생할 수 있는 부작용이다. 이상 현상의 종류 1. 삽입 이상 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 2. 갱신 이상 중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 문제 3. 삭제 이상 튜플을 삭제하면 꼭 필요한 데이터까지 같이 삭제되는 데이터 손실 문제 정규화 이상 현상을 제거하기 위해서 릴레이션을 의미 있는 속성들로만 구성하기 위해 릴레이션을 분해하는 과정이다. 이때 함수적 종속성을 판단하여 정규화를 진행한다. 함수적 종속성이란 속성들 간의 관련성을 이야기하는데, 이를 이용..

개발/CS 2022.04.16

[DB] 관계 데이터 모델링

관계 데이터 모델이란 개념적 구조를 논리적 구조로 표현하는 논리적인 데이터 모델이다. 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장한다. 관계 데이터 모델의 기본 용어 릴레이션 (relation) 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것 속성 (attribute) 릴레이션의 열 튜플 (tuple) 릴레이션의 행 도메인 (domain) 하나의 속성이 가질 수 있는 모든 값의 집합 속성 값을 입력, 수정할 때 적합성 판단 기준이 된다. 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의한다. 널 (null) 속성 값을 아직 모르거나 해당 값이 없음을 표현한다. 차수 (degree) 릴레이션에서 속성의 전체 개수 카디널리티 (cardinality) 릴레이션에서 튜플의 전체 개수 릴..

개발/CS 2022.04.14

[DB] 개념적 데이터 모델링

데이터베이스 설계 사용자의 요구 사항을 고려하여 데이터베이스를 생성하는 과정 설계 과정 중에 오류가 발견되어 변경이 필요하면 이전 단계로 돌아가서 설계 내용을 변경할 수 있다. 1단계 : 요구 사항 분석 - 사용자의 요구 사항을 수집하고 분석하여 개발할 데이터베이스의 용도를 파악한다. (요구 사항 명세서) 2단계 : 개념적 설계 - DBMS에 독립적인 개념적 구조를 설계한다. (E-R 다이어그램) 3단계 : 논리적 설계 - DBMS에 적합한 논리적 구조를 설계한다. (릴레이션 스키마) 4단계 : 물리적 설계 - DBMS로 구현 가능한 물리적 구조를 설계한다. (물리적 스키마) 5단계 : 구현 - SQL 문을 작성하고 DBMS에서 실행하여 데이터베이스를 생성한다. 데이터 모델링 (data modeling)..

개발/CS 2022.04.12

[DB] 데이터베이스 시스템 (DataBase System)

데이터베이스 시스템 (DataBase System, DBS) 데이터베이스에 데이터를 저장하고, 이를 관리하여 조직에 필요한 정보를 생성해주는 시스템 사용자, 데이터 언어, 데이터베이스 관리시스템 (DBMS), 데이터베이스 모두를 포함하는 개념이다. 데이터베이스 스키마와 인스턴스 스키마 (schema) : 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것 인스턴스 (instance) : 스키마에 따라 데이터베이스에 실제로 저장된 값 3단계 데이터베이스 구조 외부 단계 (external level) - 데이터베이스를 개별 사용자 관점에서 이해하고 표현하는 단계 개념 단계 (conceptual level) - 데이터베이스를 조직 전체의 관점에서 이해하고 표현하는 단계 내부 단계 (internal le..

개발/CS 2022.04.06

[DB] DBMS - 데이터베이스 관리시스템 (DataBase Management System)

데이터베이스 관리시스템이 등장하기 전은 파일 시스템을 사용해왔다. 그러면 데이터베이스 관리시스템을 알아보기 전에 간단하게 파일 시스템이 무엇인지 알아보자. 파일 시스템 - 파일 시스템(file system)이란? 데이터를 파일로 관리하기 위해 파일을 생성, 수정, 삭제, 검색하는 기능을 제공하는 소프트웨어이다. 응용 프로그램별로 필요한 데이터를 별도의 파일로 관리해야 한다. - 파일 시스템의 문제점은? 1. 같은 내용의 데이터가 여러 파일에 중복 저장된다. -> 데이터 중복성 문제 (저장 공간의 낭비와 데이터 일관성, 데이터 무결성을 유지하기 어렵다.) 2. 응용 프로그램이 데이터 파일에 종속적이다. -> 데이터 종속성 문제 (사용하는 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 한다.) 3. ..

개발/CS 2022.04.02

[DB] 데이터베이스(DataBase) 기본개념

데이터와 정보의 차이점은? 데이터(data) - 현실 세계에서 단순히 관찰하거나 측정해 수집한 사실이나 값 정보(information) - 의사 결정에 유용하게 활용할 수 있도록 데이터를 처리한 결과물 Data(데이터) < Information(정보) < Knowledge(지식) < Wisdom(지혜) 정보처리(information processing) - 데이터에서 정보를 추출하는 과정 또는 방법 정보 시스템(information system) - 데이터를 수집하여 저장해두었다가 필요할 때 유용한 정보를 만들어 주는 수단이다. 데이터베이스(database)의 정의와 특징 - 정보 시스템 안에서 데이터를 저장하고 있다가 필요할 때 제공하는 역할을 담당한다. - 통합 데이터 : 최소한의 중복만을 허용하는 ..

개발/CS 2022.04.01

[DB] MySQL load data infile 에러 - Error Code: 1262 , Error Code: 1300, Error Code: 2013 해결 방법

제목에 있는 3개의 Error Code는 공공데이터를 이용해서 서울의 상권정보를 csv파일로 아래와 같이 load data infile을 해서 db에 넣으려고 할 때 생긴 에러들이다. load data infile 'C:\\ProgramData\\MySQL\\MySQL Server 8.0\\Uploads\\"txt or csv 파일명"' into table "테이블명" character set utf8mb4 fields terminated by '구분자' lines terminated by '\r\n' ignore 1 rows; 각각 에러들에 대한 간단한 한 줄 설명을 적을 테니 자신에게 해당되는 내용이면 바로 고쳐보고 그래도 안되면 상세 설명도 읽으면 도움이 될 수도 있을 것이다. 1. Error Co..

개발/CS 2022.03.21
728x90