본문 바로가기

데이터아키텍처83

알티베이스(Altibase) 특징 및 DBeaver 접속 방법 프로젝트에서 Altibase라는 인메모리 데이터베이스를 경험하게 되었는데요. Altibase는 NoSQL 계열의 키밸류 인메모리 데이터베이스(Redis, Memcached 등)가 나오기 전에는 꽤나 많이 들어본 dbms였습니다. Altibase의 두 가지 재미있는 이야기가 있는데요.   Altibase 두가지 특징첫 번째는 Altibase는 한국에서 개발된 dbms라는 것이 재미있는 점인데요. Altibase는 초기 버전에서는 메모리기반 database였지만 하이브리드 방식으로 발전했는데요. 이는 빈번히 사용되는 데이터는 메모리에 저장하여 빠르게 액세스 하고, 덜 사용되는 데이터는 디스크에 저장하는 효율적인 방식입니다. 두 번째는 초기에는 상용이었으나 오픈소스로 공개했다는 점입니다. 이는 해외 시장 확대.. 2024. 7. 16.
Oracle을 MySQL로 변환할 때 고려해야 할 3가지 오류 Legacy 테이블을 인터페이스 하다 보면, 다양한 데이터베이스의 데이터를 가져오게 됩니다. 일반적으로 소스 시스템의 구조와 동일하게 타깃 시스템에 만듭니다. 이는 인터페이스가 정확히 되었는지를 확인하기에도 용이합니다.  그래서 오라클 database의 테이블을 MySQL에 생성하다보면 이기종 database이기 때문에 부분적으로 오류가 발생합니다. 오늘은 Oracle → MySQL로 테이블을 생성할 때 발생하는 3가지 오류에 대해 살펴보겠습니다.   1. 인덱스 생성 길이 오류오류 내용 : Error Code : Specified key was too long; max key length is 3072 bytes 원인PK생성시 인덱스 키 길이가 3,072 byte 초과하면 발생Database 생성시 C.. 2024. 7. 11.
Erwin 논리 모델 컬럼 한글명 표시하기 모델링 툴을 어떤 것을 사용하시나요? 저는 Er-win이 편해서 자주 사용하는데요. erwin으로 모델링하다 보면 물리/논리명이 존재해서 두 네이밍을 맞추기가 여간 번거롭지 않습니다. 그래서 오늘은 어떻게 하면 쉽게 변환해서 산출물 제출할 수 있는지 알아보도록 하겠습니다. 공식 산출물로는 엔티티정의서, 테이블정의서만 제출해도 되지만, 서로 업무적인 이해를 위해 erd도 요구하는 경우가 있습니다. 그러면 기존에 데이터베이스에 테이블은 생성되어 있는데, 추가적으로 작업을 하는 수고를 해야 하죠. 이런 상황에서 사용하면 좋은 팁입니다. 사실 erwin에 모든 메타정보(속성명, 속성정의, 도메인, 테이블 정의 등) 업데이트하는 메크로를 만들었었는데요. 요즘은 보안 환경이기 때문에 메크로를 사용할 수 없기도 합니.. 2024. 7. 4.
MySQL 성능 개선 3원칙: 데이터 타입 편 MySQL에서 어떻게 하면 성능을 좋게 할 수 있을까요? 아무래도 오라클 같은 상용 dbms보다 성능이 떨어진다는 점을 생각할 때 이 고민은 중요합니다. MySQL에서 데이터 타입의 선택은 Database 성능과 효율성에 중요한 역할을 합니다. 이번 글에서는 타입 결정을 내리는 데 도움이 되는 몇 가지 기본 원칙을 살펴보겠습니다.  사실 프로젝트에서 발생한 경험을 공유할까 합니다. Oracle의 테이블을 동일한 구조로 MySQL로 인터페이스를 해야 했는데요. 이럴 때는 대응되는 데이터 타입으로 변경이 필요합니다. 처음에 단순하게 아래와 같은 변환 방식을 생각했습니다. Oracle 타입MySQL 타입비고 NUMBER DECIMAL 숫자 타입VARCHAR, VARCHAR2  VARCHAR문자 타입CLOBL.. 2024. 7. 3.
PostgreSQL vs MySQL, 오픈소스 db 뭐가 더 좋을까? 최근에 있었던 일입니다. 오픈소스 database를 선택에 대한 고객의 문의였죠. MySQL을 사용할지, PostgreSQL을 사용할지 모르겠다는 이야기였죠. 나는 프로젝트에서 두 database 모두 사용해 봤지만 그 장단점에 대해서는 생각해 보지 않았습니다. 오픈소스이기 때문에 상용 dbms 보다 성능이 좋지 않은 정도로 알고 있었던 같습니다.  하지만 요즘에는 Oracle보다 PostgreSQL이나 MySQL 데이터베이스 기반으로 프로젝트를 많이 하게 됩니다. 그래서 다른 시니어 컨설턴트에게 전화를 해서 물어보았죠. 나 : 저번 프로젝트에서 PostgreSQL을 사용한 걸로 아는데 왜 선택했나요?그 : Oracle에서 PostgreSQL 전환 프로젝트라 SQL 구문 유사도 때문에 사용했어요.그는 P.. 2024. 7. 2.
MySQL 명령어 완벽정리, 누구나 쉽게 따라하기 MySQL의 database와 Oracle의 database의 개념부터가 다릅니다. MySQL의 database는 거의 스키마에 가깝습니다. 이런 측면에서 사용하는 방법이 약간은 다릅니다. 일부 다른 구문을 정리해 놓았으니 유용하게 사용하시기 바랍니다. 그러면 MySQL에서 자주 사용하는 구문들 바로 보시죠. 데이터베이스 관련 명령어1. 데이터베이스 접속mysql> mysql -u계정 -p비밀번호 데이터베이스명mysql> mysql -udatalib -p1234 mysql_db2. 데이터베이스 생성mysql> create database 데이터베이스명; mysql> create database mysql_db1;3. 사용자 생성 및 권한 부여mysql> create user 'myuser'@'%' ide.. 2024. 6. 27.
Oracle(오라클) vs MySQL: 타입, 문법, SQL 쿼리 구문 차이 요즘에는 오픈소스 Database를 많이 사용하는 데요. 저도 오라클에서 MySQL로 데이터를 수집하는 프로젝트를 했는데요. 과거에는 거의 오라클 위주의 사용이었다면 PostgreSQL, MySQL도 많이 경험하게 됩니다. 이번 글에서는 두 데이터베이스인 Oracle과 MySQL 간의 데이터 타입, 문법, SQL 구문 차이점에 대해 알아 보려고 합니다. 이렇게 정리해 두면 프로젝트에서도 잘 활용할 수 있을 거라 생각합니다. 1. 데이터 타입Oracle과 MySQL은 일부 데이터 유형은 이름과 동작이 다릅니다. 만약 오라클에 생성한 테이블들을 MySQL 데이터베이스로 인터페이스 해야 한다면 대응되는 타입으로 대체해야 할 건데요. 아래를 참고하셔서 MySQL 생성 스크립트를 작성하면 되겠습니다. 구분Orac.. 2024. 6. 22.
정규화 과정과 원칙: 쉬운 예시로 1, 2, 3정규형 이해하기 데이터 모델링 강의 중 이해가 가장 어려운 부분이 있습니다. 바로 정규화입니다. 사실 듣고 있으면 이해는 되는데요. 금방 잊어버린다는 사실이죠. 이 글에서는 쉬운 예시로 정규화를 접근 해 보도록 하겠습니다. 정규화는 1~5정규화, 그리고 BCNF까지 있습니다. 다 알려고 하면 머리만 복잡합니다. 가장 많이 사용되는 1, 2, 3정규형까지만 확실히 알아놓자고요. 사실 3정규형까지만 알아도 모델링하는데 아무 문제가 되지 않습니다. 정규화 과정과 원칙실제 모델링을 할 때 정규화 과정을 Task로 만들지는 않습니다. 대부분 논리 모델링을 할 때 정규화에 맞게 모델러들이 알아서 설계합니다. 그리고 물리 모델링 때 반정규화 할 부분을 도출하죠. 예를들어, 모델링 이후 1정규형 → 2정규형 → 3정규형 거치는 방식으.. 2024. 6. 20.
NULL의 개념, 공백 문자(" "), NA, NaN과 차이점은 뭘까? NULL에 대한 개념이 헷갈리는 분들 많지 않나요?  데이터 분석이나 데이터베이스 관리를 하다 보면 NULL, 공백문자(" "), NA, NaN과 같은 용어를 자주 접하게 됩니다. 유사해 보일 수도 있지만 각각은 의미와 활용은 다릅니다. 이 용어들의 차이점을 살펴보고 NULL의 사례를 통해 정확히 이해해 보겠습니다. NULL과 “ ”의 차이NULL은 사전적으로 ‘존재하지 않음’을 뜻합니다.  0, 빈 문자열 또는 절대 공백이 아닙니다. 대신, 이는 어떤 값도 없음을 의미하는데요. “ ”는 공백 문자가 들어가 NULL과는 다른 의미입니다. 데이터베이스에서 NULL은 ‘아직 정해지지 않은’으로 해석을 더 많이 합니다. 한편 데이터 분석에서는 값이 없으면 NA라고 해서 결측값이라고 생각합니다. 그런데 데이터베.. 2024. 6. 19.