[SQL] 정규화(Normalization)
데이터 모델링에서 정규화는 가장 기초적이지만 필수적으로 이루어져야하는 작업이다. 성능을 위해 반정규화를 하기도 하지만, 그 이전에 정규화가 왜 필요한지를 반드시 알아야 한다. 다음 몇가지 사례를 통해 정규화가 무엇인지와 그 필요성을 알아보자. 정규화란? 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 한다...
데이터 모델링에서 정규화는 가장 기초적이지만 필수적으로 이루어져야하는 작업이다. 성능을 위해 반정규화를 하기도 하지만, 그 이전에 정규화가 왜 필요한지를 반드시 알아야 한다. 다음 몇가지 사례를 통해 정규화가 무엇인지와 그 필요성을 알아보자. 정규화란? 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 한다...
식별자 개념 식별자란 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미하며, 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야 한다. 보통 식별자와 키를 동일하게 생각하는 경우가 있는데 식별자라는 용어는 업무적으로 구분이 되는 정보로 생각할 수 있으므로 논리 데이터 모델링 단계에서 사용하고 키는 DB 테...
관계의 개념 관계의 정의 관계를 사전적으로 정의하면 상호 연관성이 있는 상태로 말할 수 있다. 이것을 데이터 모델에 대입하여 정의하면, ‘엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태’ 또는 ‘관계 패어링의 집합을 논리적으로 표현한 것’ 이라고 할 수 있다. 관계는 엔터티와 엔터티 간 연관성을 ...
리눅스를 비롯한 다양한 OS들은 사용자 개념을 가지고 있다. 사용자는 각기 다른 용도로 쓰임에 따라 권한의 차이가 있는데, 일반적인 사용자들은 그 차이를 특수한 상황을 맞닥드리지 않는 이상 잘 느끼지 못한다. 하지만 개발자들은 개발을 하다보면 특히 리눅스에서 사용자의 차이를 확연히 느낄 수 있는데, 사용자의 개념이 잘 잡혀있지않은 개발자라면 혼란에 빠...
데이터 모델을 이해할 때 가장 명확하게 이해해야 개념 중 하나가 엔터티이다. 엔터티는 우리말로 실체 또는 객체라고도 하며 실무에서는 엔터티라고 많이 쓰인다. 그렇다면 이러한 엔터티가 대체 무엇인지, 또한 어떠한 특징을 가지고 있는지 등등 엔터티에 대한 개념을 알아보자. 엔터티의 개념 엔터티의 정의 사람, 장소, 물건, 사건, 개념 등의 ...
속성의 개념 속성의 정의 업무에 필요로 한다. 의미상 더 이상 분리되지 않는다. 엔터티를 설명하고 인스턴스의 구성요소가 된다. 속성이란 사전적인 의미로는 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것으로 정의할 수 있다. 사전적인 정의 이외에 데이터 모델링 관점에서 속성을 정의하자면, ‘업무에서 ...
SSH의 개념 SSH는 원격 시스템에 로그인하여 명령을 실행하는 프로그램으로 기본적인 사용법은 telnet과 유사하다. telnet은 클라이언트와 서버간의 데이터 전송 시에 일반 텍스트 형태로 패킷을 전달하여 패킷의 내용을 유출당할 수 있지만, SSH는 패킷 전송 시 암호화시키므로 안전하게 전송할 수 있다. SSH는 SSH1과 SSH2 두가지 버전...
현업에서 데이터 모델링을 할때 반드시 거치는 작업이 있다. 바로 데이터 모델의 표기법인 ERD를 작성하는 것이다. 이번 포스팅에서는 ERD가 무엇이고 어떻게 작성하는 것인지 알아보자. ERD란? ERD는 데이터 모델에 대한 표기법을 활용해 다이어그램 형태로 표현한 것을 말한다. 1976년 피터첸은 E-R 모델이라는 표기법을 만들었다. 엔터티를...
리눅스를 공부하다가 심볼릭 링크라는 단어를 접하게되었다. 여러 자료들을 찾아보니 심볼릭 링크는 리눅스의 i-node개념과 연관성이 있는 것을 알게되었고, 이번 포스팅에서 심볼릭 링크를 포함하는 보다 큰 개념인 링크와 이에 연관성을 가지는 i-node에 대해 정리해보고자 한다. i-node i-node 개념 리눅스의 파일링크 개념을 이해하려면 i-...
독자들은 리눅스를 포함한 다양한 OS들을 설치한 후에 수많은 디렉토리가 내 하드웨어에 담겨있는걸 경험해봤을 것이다. OS설치 시 내 하드웨어 제품에 담겨지는 디렉토리들은 OS설치파일에 담겨있는 수많은 파일들을 묶어 놓은 것으로, 각각의 디렉토리들이 어떠한 파일을 담고 있는지 파악할 필요가 있다. 이번 포스팅에서는 수많은 OS들중 하나인 리눅스가 가지고...