Database

    [MYSQL] ERROR 3780 해결: CHARACTER SET utf8mb3 & utf8mb4 (차이점, 호환성, 데이터 백업, 문자셋 변경 방법)

    order_history 테이블에 google_id 컬럼 -> user 테이블에 google_id 컬럼으로 외래키 참조를 하려 했으나 3780 에러가 발생했다. ERROR 3780: Referencing column 'google_id' and referenced column 'google_id' in foreign key constraint 'order_history_fk_user' are incompatible. 참조를 하려는 컬럼과 참조가 되는 컬럼이 호환이 되지 않아서 발생한 문제이다. 먼저 데이터 타입을 확인해보자. 데이터 타입이 맞지 않을 경우, INT나 BIGINT와 같은 데이터 타입도 호환되지 않기 때문에 이러한 문제가 발생할 수 있다. 만약 이 문제가 데이터 타입이 맞지 않아 발생한 것이..

    데이터베이스에서 데이터 무결성의 중요성과 유지 방법

    데이터베이스에서 데이터 무결성의 중요성은 데이터 가치와 데이터 신뢰성 측면에서 설명할 수 있다. 데이터 가치는 업무에 필요한 의미 있는 정보를 제공하기 위한 목적으로 데이터를 활용하는 것을 의미하며 데이터 신뢰성은 항상 정확하고 오류가 없는 데이터가 데이터베이스에 저장될 것이라는 신뢰를 보장하는 것을 의미한다. 데이터베이스의 무결성은 무엇으로부터의 무결성일까? 개발 환경일까? 데이터베이스 자체일까? 정답은 구축하고자 하는 비즈니스의 의미이다. 우리가 구축하고자 하는 대상 데이터베이스는 업무를 통해 발생하는 데이터를 저장, 검색, 수정 등을 하는 용도로 사용된다. 즉, 비즈니스로부터 데이터가 입력되고 이용된다는 의미이다. 일반적으로 트랜잭션을 정의할 때 '업무적으로 의미 있는 논리적인 일의 처리 단위'라고..

    CHAR와 VARCHAR의 차이점

    char와 varchar는 데이터베이스에서 문자열 데이터를 저장하는 데 사용되는 데이터 타입이다. 둘 다 문자열 데이터를 저장하는 데 사용되지만, 동작 및 성능에 차이가 있다. char는 고정 길이 문자열 데이터를 저장하는 데 사용된다. 예를 들어, char(10)으로 정의된 열은 영문 10개의 문자를 저장할 수 있다. 이 경우, 실제 데이터가 10자보다 적으면 남는 공간은 공백으로 채워진다. 데이터 검색과 같은 일부 작업에서 유리하다는 장점이 있으나 데이터가 실제로 저장된 공간보다 작을 경우, 저장공간의 일부분이 불필요하게 낭비된다. 반면, varchar는 가변 길이 문자열 데이터를 저장하는 데 사용된다. 예를 들어, varchar(10)으로 정의된 열은 최대 영문 10자의 문자열을 저장할 수 있다. ..

    [MySQL] mac 터미널에서 서버 접속, 데이터베이스 생성, 선택

    1. MySQL server 시작하기 mysql.server start 2. root 계정으로 비밀번호 이용해 접속 mysql -u root -p 3. 현재 생성되어 있는 데이터베이스 확인 SHOW databases; 4. 데이터베이스 생성 CREATE DATABASE study_mysql default CHARACTER SET UTF8; *데이터베이스 조작어는 대문자를 사용* study_mysql 이라는 이름의 데이터베이스 생성 character set을 UTF8로 지정 4. 사용할 데이터베이스 선택 USE study_mysql;

    [DB] 관계형 데이터베이스의 정의와 종류

    관계형 데이터베이스 '관계 대수(relational algebra)' 라는 것에 착안하여 고안한 데이터베이스. 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스를 가리킨다. (엄밀히 말하자면, 관계 대수는 표 형식 데이터와는 아무런 관계가 없다는 점 기억하자) 표 형식 데이터란? 가로 방향으로는 '열'을, 세로 방향으로는 '행'을 나열하는 2차원 데이터를 의미한다. RDMS 제품 1. Oracle 현재 가장 많이 쓰이는 RDBMS 중 하나로, RDBMS의 사실상 표준이라고 해도 무방하다. 최신 Oracle Database에 대한 자세한 내용 데이터베이스 19c를 사용하여 비즈니스 전략을 확장하고 온프레미스 또는 클라우드에서 실행되는 모든 데이터 워크로드에 대해 더 높은 성능을 확보하십시오...

    [DB] DB와 DBMS, SQL이란 무엇인가

    DB와 DBMS 데이터베이스 (DB, Database) : 특정 데이터를 확인하고 싶을 때 간단하게 찾아낼 수 있도록 정리된 형태 저장장치 내에 정리되어 저장된 데이터의 집합 데이터베이스 관리 시스템 (DBMS, Databse Management System) 데이터베이스를 효율적으로 관리하는 소프트웨어 DBMS가 필요한 이유: 1. 생산성 시스템을 구축할 때 기본 기능부터 구현하는 것은 비용 측면에서 효율적이지 않다. 데이터 검색, 추가, 삭제, 갱신과 같은 기본 기능은 DBMS가 제공함으로써 생산성 향상을 도모할 수 있다. 2. 기능성 DBMS는 데이터베이스를 다루는 기능을 제공한다. 또한 데이터베이스 관리 기능을 유저가 확장할 수도 있어 유연하게 시스템을 개발할 수 있다. 3. 신뢰성 대규모 데이터..

    [DB] 트랜잭션 Transaction

    트랜잭션이란 무엇인가? 데이터베이스 관리 시스템에서 사용자 프로그램의 실행 단위 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위 관련 작업을 모두 완벽하게 처리하거나, 처리하지 못하는 경우 원 상태로 복구해서 작업의 일부만 적용되는 현상이 발생하지 않게 만들어주는 기능으로 작업의 완전성을 보장한다. 데이터베이스 관리 시스템에 요구되는 동시 접근 제어와 복구에 관련된 문제를 해결하기 위해서 데이터베이스 관리 시스템은 트랜잭션을 구현해야 한다. 트랜잭션은 ACID라고 불리는 다음의 성질을 만족해야 한다 트랜잭션의 특징 원자성 관련 작업이 전부 처리되거나 아예 처리되지 않아야 함. 중간에..

    [DB] 정규화에 대해서

    정규화란 무엇인가 관계형 데이터 베이스 설계에서 중복을 최소화하고 데이터를 구조화하는 프로세스를 뜻한다. 데이터가 중복으로 저장된다 - 디스크 공간 낭비 - 비정상적인 삽입 갱신 삭제 처리 - 일관되지 않은 데이터 문제가 생긴다. 기본 목표: 테이블 간에 중복된 데이터를 허용하지 않는다. - 불필요한 데이터를 제거, 데이터의 중복을 최소화 - 데이터 베이스 구조 확장 시 재디자인을 최소화 - 이상 현상 방지 중복된 데이터를 허용하지 않음으로써 이상 현상을 없애는 과정 정규화는 어떤 배경에서 생겨났는가 한 릴레이션에 여러 속성의 값들을 혼합하면 정보가 중복 저장되어 이상 현상이 발생한다. 이상 현상이란, 테이블 내의 중복성에 의해서 발생되는 데이터 불일치 현상을 의미한다. 갱신 이상: 어떤 값을 업데이트 ..

    [DB] Index란 무엇인가? Index 자료구조와 성능

    인덱스(Index)란 무엇인가? 💡인덱스는 데이터 베이스 테이블 검색 성능의 속도를 높여주는 자료 구조이다. 인덱스는 테이블 내의 1개의 컬럼, 혹은 여러 개의 컬럼을 이용하여 생성될 수 있다. 고속의 검색 동작뿐만 아니라 레코드 접근과 관련 효율적인 순서 매김 동작에 대한 기초를 제공한다. 특정 컬럼에 인덱스를 생성하면, 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 인덱스를 생성한 후에 쿼리문에 인덱스 생성 컬럼을 WHERE 조건으로 거는 등의 작업을 하면 옵티마이저에서 판단하여 생성된 인덱스를 타고 인덱스에 저장되어 있는 데이터의 물리적 주소로 가서 데이터를 가져온다. 예를 들자면, 인덱스는 책에 있는 목차와 같다. 원하는 부분을 찾기 위해 목차에 있는..

    [DB] 데이터 베이스를 사용하는 이유, 데이터 베이스의 성능

    파일 처리 시스템 데이터 베이스 등장 이전에 파일 처리 시스템을 이용해서 데이터를 관리하였다. 파일 처리 시스템은 각각의 파일 단위로 데이터를 저장하는데, 파일에 접근하는 방식이 응용 프로그램 내에 표현되므로 응용 프로그램과 데이터 간의 의존 관계가 존재하게 되어 데이터 구조 및 접근 방법이 변경되면 기존의 프로그램과 데이터를 함께 변경해야 한다. >> 데이터의 정의가 응용 프로그램에 내포되어 있고, 프로그램에서 직접적으로 데이터에 접근하고 조작하는 것 이외에 별도의 제어가 없기 때문에 데이터 종속성, 중복성 문제가 발생한다. 데이터 종속성 응용 프로그램과 데이터의 상호 의존 관계로 인해 파일 구조나 접근 방법이 변경되면 응용 프로그램도 함께 변경해야 한다 데이터의 중복성 한 시스템 내의 데이터가 중복 ..