CS/DataBase

CS/DataBase

[DataBase] MySQL에서 VARCHAR와 TEXT의 차이

0. Overview MySQL의 문자열데이터 타입 중 자주 사용하는 VARCHAR와 이와 비슷한 TEXT 가 있죠 ? 기존의 VARCHAR는 255byte만 지원하다가 MySQL5.0.3 이후로 VARCHAR와 TEXT 타입 모두 최대 65,535byte 길이를 지원하게 되었습니다. VARCHAR와 TEXT는 모두 문자열을 저장하기 위한 데이터 타입이며, 그렇다면 이 둘의 차이는 무엇일까? 라는 생각이 들었고 이를 알고자 글을 작성하게 되었습니다. 1. 저장 용량 VARCHAR의 저장 구조 VARCHAR는 최대 65,535byte까지 저장이 가능하며, 현재 저장된 byte의 크기 + 길이를 표현하는 byte로 구성됩니다. - 255byte 이하의 데이터 저장 : 길이 접두사로 1byte를 사용하고 실제..

CS/DataBase

[DataBase] RDBMS vs NoSQL

관계형 데이터베이스 - SQL SQL은 '구조화 된 쿼리 언어'의 약자로 데이터베이스 자체를 나타내는 것이 아니라, 특정 유형의 데이터베이스와 상호 작용하는데 사용 하는 쿼리 언어이다. SQL을 이용하면 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다. 데이터는 정해진(엄격한) 데이터 스키마를 따라 데이터베이스 테이블에 저장된다. 데이터는 관계를 통해 여러 개의 테이블에 분산된다. 엄격한 스키마 데이터는 테이블에 레코드로 저장되며, 각 테이블에는 명확하게 정의된 구조가 있다. 구조란 ? : 어떤 데이터가 테이블에 들어가고 어떤 데이터가 그렇지 않을지를 정의하는 필드 집합을 가르킨다. 관계형 데이터베이스에서 스키마를 준수하지 않는 레코드는 추가할 수 없다. ..

CS/DataBase

[DataBase] 다대다(M:N) 관계 연결 테이블 구현

다대다 (M:N) 관계 두 개의 테이블이 서로의 행에 대해 여러개로 연관 되어 있는 상태를 다대다(M:N)관계라고 한다. 예를 들어 한명의 학생이 여러 수업을 수강하고, 한 수업은 여러 학생을 수용하는데 이를 ERD로 표현하면 다음과 같다. ERD (Entity Relationship Diagram) : 개체-관계 모델. 테이블간의 관계를 설명해주는 다이어그램이라고 볼 수 있으며, 이를 통해 프로젝트에서 사용되는 DB의 구조를 한눈에 파악할 수 있다. 즉, API를 효율적으로 뽑아내기 위한 모델 구조도라고 생각하면 된다. 다대다(M:N) 구현하기 논리적으로 다대다관계의 표현은 가능하지만 2개의 테이블만으로 구현하는 것은 불가하다. 다대다 관계를 실제로 구현하려면 각 테이블의 Primary Key를 외래키..

CS/DataBase

[DataBase] - 트랜잭션 격리 수준

트랜잭션 격리 수준 복수개의 트랜잭션이 한 번에 처리될 때, 특정 트랜잭션이 변경하거나 조회하고 있는 데이터에 대해 다른 트랜잭션에 대해 조회 허용 여부를 결정하는 것이다. 트랜잭션 격리 수준은 아래와 같이 4개로 구분된다. SERIALIZABLE (직렬화 가능) REPEATABLE READ (반복 가능한 읽기) READ COMMITTED (커밋된 읽기) READ UNCOMITTED (커밋되지 않은 읽기) 아래로 갈수록 격리 수준이 낮아지며 동시 처리 성능이 높아진다. 반면 위로 갈수록 격리 수준이 높아지며 동시 처리 성능은 낮아지지만 데이터 부정합 문제가 발생할 확률이 줄어든다. 트랜잭션 격리 수준에 따라 발생할 수 있는 문제 트랜잭션 격리 수준에 따라 발생할 수 있는 문제점을 간단히 짚고 넘어가도록 ..

엥재
'CS/DataBase' 카테고리의 글 목록 (2 Page)