데이터노트/데이터베이스

    CHAR와 VARCHAR

    DBMS에서 지원하는 데이터 타입에서 살펴봤듯이 각종 DBMS가 지원하는 대표적인 문자형 데이터 타입에는 고정 길이 문자형을 표현하는 'CHAR'와 가변 길이 문자형을 표현하는 'VARCHAR'[각주:1]가 있습니다. 필자는 고정 길이와 가변 길이로 구분한 이유가 궁금했습니다. 데이터 타입을 고정 길이와 가변 길이 형태로 구분한 이유가 무엇일까요? ANSI SQL 표준화 작업 과정 중 데이터전문가들이 검토한 결과로 데이터베이스에서 문자형을 표현하는 데이터 타입을 고정/가변 길이로 구분할 필요성이 있었던 것 같습니다. 아마도 데이터 표현과 데이터 관리의 명확성 때문에 위와 같이 구분한 것 아닐까요? 데이터 타입을 명확히 구분하는 것이 해당 속성의 데이터 특성을 이해하는데 훨씬 효율적일 것입니다. 하지만 데..

    다양한 조인(JOIN)기법

    조인(JOIN)은 관계형 데이터베이스(Relational Database, RDB)의 꽃이라고 불립니다. 조인을 명확하게 이해하기 위해서는 관계형 데이터베이스에 대한 이해가 필요합니다. 관계형 데이터베이스에 대한 설명은 이 글의 범위를 벗어나므로, 관계형 데이터베이스에 대한 자세한 내용은 다음 링크를 참조하시기 바랍니다. 참고로 관계형 데이터베이스의 특징을 한 문장으로 요약하면, 정규화(Normalization) 이론을 활용하여 데이터 이상 현상을 제거하고, 데이터 중복을 최소화하여 데이터를 관리하는 것입니다. 조인이 왜 필요할까요?관계형 데이터베이스의 구조적 특징으로 말미암아 정규화를 수행하면 의미 있는 데이터의 집합으로 테이블이 구성되고, 각 테이블끼리는 관계(Relationship)를 갖게 됩니다...

    DBMS에서 지원하는 데이터 타입

    데이터 모델을 설계하는 과정에서 속성을 도출하고, 속성의 데이터 타입(Data Type)을 결정하는 과정은 꽤 복잡합니다. 그러나 지금까지 경험을 비추어보면, 다양한 상황을 고려하지 않고 데이터 타입을 선택하는 경우가 많았습니다. 이 결과로 말미암아, 속성의 특성에 알맞은 데이터 타입을 사용하지 못하고, 부정확하게 사용하는 경우를 자주 볼 수 있었습니다. 올바른 데이터 타입을 선정하는 것은 매우 중요합니다. 왜냐하면, 데이터 타입을 결정하면 다양한 제약조건이 만들어지고 데이터 타입을 변경하기 어렵기 때문[각주:1]입니다. 이뿐만 아니라, 질의(Query) 작성과 응용 프로그램의 성능에도 큰 영향을 미치게 됩니다[각주:2]. 이 문서에서 현존하는 모든 DBMS에서 지원하는 데이터 타입을 다루는 것은 불가능..

    SQL(Structured Query Language)

    Structured Query Language(SQL)는 우리말로 구조화된 질의 언어로 정의할 수 있습니다. SQL은 관계형 데이터베이스 관리 시스템(Relational Database Management System: RDBMS)에서 데이터 정의, 데이터 조작, 그리고 데이터 제어를 위해 사용하는 언어입니다. 영문 위키 페이지[관련링크]를 확인해보면, SQL의 표현을 '시큐얼' 또는 '에스큐엘'이라고 표현하고 있습니다. 시큐얼은 Structured English Query Language (SEQUEL)로 SQL의 최초 이름이었습니다. 그러나 표준으로 정의된 이름이 SQL이기 때문에, '에스큐엘'로 발음하는 것이 좋을 것 같습니다. SQL 역사 SQL의 초기 모델은 SEQUEL은 1970년대 초반 Sy..