Data Base/관계형 데이터 모델링
-
데이터 모델링14 - 정의된 집합으로 모델링 하기Data Base/관계형 데이터 모델링 2023. 9. 21. 15:12
명확하게 정의된 집합으로 모델링을 시작하자 그림 8-4 IT 교육 센터의 다양한 교육 프로그램 한 IT교육 센터에서 [그림 8-4]와 같은 다양한 교육 과정을 관리하기 웹페이지의 데이터를 관리하기 위한 모델링을 시작했다고 가정해 보자. 가장 먼저 흰종이에 박스 하나를 그리고 그 위에 '교육 과정'이라는 이름을 붙인 엔티티를 하나만들었다. 엔티티를 의미하는 박스를 만들고 엔티티명을 적는 것은 박스 안의 세계와 바깥에세계를 완전히 단절시키는 행위다. 즉, 교육 과정이라는 집합에 들어갈 개체와 들어가서는 안되는 개체를 완전히 분리하겠다는 의미다. 앞서 언급한 것처럼 관계형 데이터 모델의 핵심은 엔티티는 엔티티와 관련된 속성만을 집약해서 가지고, 다른 엔티티의 정보가 필요할 경우는 관계를 통해서 연결해 사용하는..
-
데이터 모델링13 - 엔티티의 정의Data Base/관계형 데이터 모델링 2023. 9. 21. 10:57
엔티티는 집합과 닮았다. 엔티티는 수학의 집합(set)이론에 근거한다. 수학의 차집합이나 합집합에 해당하는 집합을 만드어주는 MINUS와 UNION과 같은 연산자가 ANSI 표준 SQL문법에 있는 것만 봐도 알 수있다. 국어 사전에서는 집합을 '특정 조건에 맞는 원소들의 모임. 한 원소가 그 모임에 속하는지 알 수 있고, 그 모임에 속하는 임의의 두 원소가 다른가, 같은가를 구별할 수 있는 명확한 표준이 있는 것'이라고 정의하고 있다. 그림 8-1 SQL의 집합 연산자 집합론의 창시자인 독일의 수학자 칸토어(Georg Cantor)는 집합을 '우리의 직관 또는 사고의 대상 중에서 확정되어 있고 서로 명확히 구별되는 것들의 모임'이라고 정의했다. 이 정의는 중요한 두가지 사실을 명확히 드러낸다. 첫째 , ..
-
데이터 모델링12 - 정규화와 성능, 실무에서 모델링 절차Data Base/관계형 데이터 모델링 2023. 9. 20. 15:55
정규화와 성능 [그림 7-8] 정규화 전(왼쪽)과 후(오른쪽), 어느 쪽이 빠른가? [그림 7-8]의 왼쪽은 주 식별자를 구성하는 와 중 에 부분 종속된 속성이 존재하여 2정규화가 필요한 테이블이고, 오른쪽은 이를 2정규화하여 두 개의 테이블로 분리한 모습이다. '2002년 이후에 등록한 모든 지점을 조회하라'는 SQL을 처리하면 정규화된 쪽이 훨씬 빠르다. 왼쪽 모델의 경우는 불필요하게 중복된마큼의 데이터를 더 읽어야 하지만, 오른쪽은 테이블에서 조건에 맞는 데이터만 읽어 빠르게 처리할 수 있기 때문이다. 반대로 가 '01' 등록원장 정보를 과 함께 조회하는 경우를 생각해보자 왼쪽 테이블은 하나의 테이블에서 조회할 수 있지만, 오른쪽은 테이블 두개를 조인해야 한다. 하지만 과 의 연결 고리인 인덱스만 ..
-
데이터 모델링11 - 정규화 이론(2정규화, 3정규화)Data Base/관계형 데이터 모델링 2023. 9. 20. 14:10
정규화 이론(2정규화) 그림 7-4 2정규화 - 주 식별자 일부에 만 종속된 속성은 별도의 엔티티로 분리한다. 2정규형에서는 모든 속성이 반드시 주 식별자에 전부 종속되어야 한다. 엔티티의 속성 중 일부만 주 식별자 종속될 경우 즉 주식별자가 아닌것에 종속되는 속성이 있을 경우 해당 관계를 가지는 개별 그룹을 분리해 엔티티로 생성해야 한다. 한가지 주목할 점은 1정규화로 생성된 집합은 자식(child)이 되지만, 2정규화로 분리된 집합은 부모(parent)가 된다는 것이다. 그림 7-5 주 식별자 중 에만 종속된 속성을 별도 엔티티로 분리 [그림 7-5]의 왼쪽 엔티티에서 계약 주체는 혹은 으로 표현된다고 하자. 이때 이들 값이 변경되면 해당 단체의 모든 계약을 찾아서 바뀐 정보로 변경해주어야 할 것이다..
-
데이터 모델링 10 - 정규화 이론(1정규화)Data Base/관계형 데이터 모델링 2023. 9. 19. 17:13
정규화 이론 앞선 게시물에서 설명한 것처럼 데이터 모델링은 2차원 표에 어떤(what)데이터를 어떻게(how)담는 것이 최적인지 고민하는 과정이다. 어떤 데이터를 담아야 하는지 결정하는 것은 그리 어려운 작업이 아니다. 1)업무요건으로 관리해야 할 데이터가 어느 정도 정형화되고, 2)프로세스나 기능 관점의 모델링 단계에서 다시 한 번 확인하여 누락된 데이터를 발견할 수 있다. 다만 물리적으로 존재하지 않아 쉽게 확인할 수 없는 논리적 데이터 집합은 식별하기 어려울수 있다. 예를 들어 가족이라는 집합, 휴대폰 요금 수납의 부모 역할을 하는 청구하는 집합, 특정 기준을 세우고 그 기준에따라 무언가를 구분하고 분류하는 체계의 집합은 보거나 만질 수 없지만, 개념적으로 분명히 존재하는 집합이다. 표 7-1 데이..
-
데이터 모델링9 - 현실적인 논리 모델Data Base/관계형 데이터 모델링 2023. 9. 19. 13:04
개념 모델, 논리 모델, 물리 모델, 그리고 현실적인 논리 모델 본격적인 엔티티 모델링데 들어가기 전에 데이터 모델을 보는 3가지 관점인 개념 모델, 논리 모델, 물리 모델에 대해 좀 더 살펴보기 위해 모델링에서 다소 논쟁거리가 될 수 있는 주제 몇가지를 알아보자 이것에 대해 논의 하다 보면 자연 스럽게 이 모델들의 깊이를 이해하게 될 것이다. 3가지 모델의 교과서적 정리 '개념적'이라는 말의 뜻 때문에 오해할 여지가 있으나, 개념 모델은 개괄적이고 추상적인 모델이 아니다. 개념 모델은 모델을 상세화 하기 전에 1)주요 엔티티를 정의하고, 2)엔티티의 주 식별자와 주요 속성O(모든 속성X)까지 도출하여 3)엔티티 간의 관계까지 정리한 수준의 모델을 의미한다. 💡 tip) 목차의 존재이유 보고서나 책등 무..
-
데이터 모델링8 - 데이터 모델링은 2차원 표에 어떻게 데이터를 담을 것인지 고민하는 과정Data Base/관계형 데이터 모델링 2023. 9. 18. 17:56
데이터 독립성과 데이터 모델링의 실질적 정의 물리데이터와 논리데이터 모델을 우리말로 번역하면 모형 정도가 될 것이다. 모형은 사전적 의미 그대로 실물을 모방하여 간단하게 만든 물건이다. 그렇다면 데이터 모델의 실물은 무엇일까? 우리는 데이터라는 콘텐츠를 담을 그릇이 필요하 것이고, 이 그릇을 IT스럽게 얘기하면 구조 정도로 표현할 수 있을 테니, 실물은 결국 데이터의 저장 구조가 될 것이다. 따라서 우리가 만드는 모델은 데이터가 최종적으로 저장되는 구조를 백지 위에 네모 박스와 선으로 그린 그림이다. 윈도우에서 디스크 조각 모음을 해본 경험이 있다면, 사람이 파일시스템에서 정보의 최소 단위로 인식하는 파일이 실제로는 디스크의 여기저기에 물리적으로 흩어진 블록조각들의 모음이라는 사실을 이해할 것이다. 연속..
-
데이터 모델링7 - 범주화와 추상화Data Base/관계형 데이터 모델링 2023. 9. 18. 12:08
범주화와 추상화 데이터 모델링에 범주화(classification)와 추상화(abstraction)개념을 더하면 데이터 모델링이 무엇인지 훨씬 또렷해진다. 복잡한 현실 업무의 속성과 규칙을 모델로 정형화하려면 먼저 비지니스 문제 영역의 데이터를 관찰해서 그 안에 숨어 있는 유형과 관계를 찾아내야 한다. ERD와 같은 형태로 형상화하기 위해서는 문제 영역을 자연스럽게 일정한 크기의 덩어리로 나누게 되는데, 이 과정에서 범주화와 추상화 라는 개념이 필요하다. 1)범주화는 앞서 언급했듯 유사한 것들을 일정하게 묶는 프로세스며, 2)추상화는 문제 영역에서 가장 핵심적인 특성만을 추리는 과정이다. 💡tip) 추상화 관점 소프트웨어 공학 전반에서 중요한 개념으로 사용되는 추상화는 그 정의도 다양하다 다음 정리는 서..