Data Base
-
데이터 모델링 17 - 데이터에는 유형, 종속관계, 계층구조가 존재한다2Data Base/관계형 데이터 모델링 2023. 9. 22. 13:39
데이터의 종속과 계층 구조 데이터 간에는 다양한 연관 관계가 존재한다. 그 중에서 데이터의 존재적 관점에 집중해서(대출 - 대출 상환처럼 다른 데이터의 발생에 영향을 미치는 데이터의 관점으로) 데이터 간 종속성에 대해 알아보자. 참고로 정규화 이론의 기반인 함수적 종속성이 속성 간 종속 관계(즉, 엔티티 안에서의 종속성)를 추적하는 것이라면, 앞으로 살펴볼 내용은 개체(인스턴스)수준의 종속성을 따지는 것이다. 엔티티에는 크게 다른 엔티티에 의존하지 않고 스스로 존재하는 강한(strong)엔티티와 반드시 상위 엔티티가 있어야 존재할 수 있는 약한(week)엔티티가 있다. 종속이란는 개면이 다소 추상적일 수 있어 덧붙이자면, 약한 엔티티는 자신의 속성만으로 식별자(key)를 명세할 수 없는 불완전한 개체 유..
-
데이터 모델링16 - 데이터에는 유형, 종속관계, 계층구조가 존재한다1Data Base/관계형 데이터 모델링 2023. 9. 22. 11:36
데이터 유형 업무 데이터를 유심히 살펴보면 일반적으로 데이터에는 그 성격이 유사해서 하나의 틀로 묶을 수 있는 유형 혹은 패턴이 존재함을 발견할 수 있다. 예를 들어 다음 두 사건을 놓고 생각해보자 A가 S전자의 상품 X를 2015년 10월 17일에 구매했다. B가 K은행의 계좌 Y에 2015년 10월 18일 15시 27분경 100만원을 입금했다. 구매와 입금에는 1)행위의 주체인 A와 B가 존재한다. 이 문장은 주어에 해당한다. 그리고 이들 2)행위의 대상인 상품 X와 계좌 Y도 보인다. 이는 목적어에 해당한다. 또 두문장에서 구매와 입금이라는 3)행위 자체와 4)행위가 일어난 시각도 물론 확인할 수 있다. 사실 업무데이터라 함은 업무와 관련되 사건의 기록이며, 사건의 기록은 육하원칙에 따라 정리가 가..
-
데이터 모델링15 - 엔티티 모델링의 어려움Data Base/관계형 데이터 모델링 2023. 9. 21. 15:50
엔티티 모델링이 어려운 이유 엔티티 모델링이 어려운 이유를 한마디로 표현하면 엔티티의 적당한 크기(추상화 수준)를 결정하는 기준을 찾기 어렵기 때문이다. 사실 엔티티의 추상화 수준을 무시한다면 세상의 모든 비즈니스는 극단적 단 2 개의 엔티티와 관계로 설명하고 관리할 수 있다. 그림 8-10 극단적으로 추상화한 모델 엔티티 모델링이 어려운 이유를 세분화하면 크게 다음 다섯 가지 정도로 정리할 수 있다. 또한 이 다섯 가지의 이유는 서로 맞물려 있는 교집합이 있는 유기적인 내용이다. 첫째, 데이터 집합을 정의하기 쉽지 않다. 모델링은 결국 업무 데이터의 분류와 묶음이라는 행위 인데, 그 기준을 세우기 어렵다. 예를 들어 '여신 연체관리 진행'이라는 은행 업무가 있다고 가정한다면, 엔티티로 를 만들어야 하는..
-
데이터 모델링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 데이..