본문 바로가기

전체 글

(51)
11일차- 반정규화와 성능 반정규화의 정의 반정규환 정규화를 반대로 한다는 얘기이고 비정규화는 아예 정규화를 하지 않은 모델을 지칭할때 쓰는 것이다. 반정규화를 정의하면 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다. 디스크 I/O량이 많아 성능이 저하 되거나, 경로가 너무 멀어서 성능이 저하 되거나, 칼럼을 계산해서 읽을 때 성능이 저하 되는 것들을 반정규화를 수행하면 성능이 좋아진다. 기본적으로 정규화는 입력/ 수정/ 삭제에 대한 성능을 향상시킬 뿐만 아니라 조회에 대해서도 성능을 향상시키는 역할을 한다. 그러나 정규화만을 하면 엔티티 수가 증가하고 관계가 많아지므로 여러 조인을 해야 데이터를 가져올수 있게 된다. 따라서 ..
10일차 - 데이터모델의 성능 데이터 모델링을 할 때 기본적으로 정규화를 완벽하게 수행해야 한다. 정규화된 모델이 데이터를 주요 관심사별로 분산시키는 효과가 있기 때문에 그 자체로 성능을 향상시키는 효과가 있다. 데이터 모델에 발생되는 트랜잭션의 유형을 파악할 필요가 있다. 트랜잭션의 유형에 대한 파악은 CRUD 매트릭스를 보고 파악하는 것도 좋은 방법이 될 수 있고 객체지향 모델링을 적용한다면 시퀀스 다이어그램을 보면 트랜잭션의 유형을 파악하기에 용이하다. 화면에서 처리된 데이터의 종류들을 보면 이벤트(입력, 수정, 삭제, 조회)에 따라 테이블에 데이터가 어떻게 처리되는지를 유추할 수 있다. 트랜잭션의 유형을 파악하게 되면 SQL 문장의 조인관계 테이블에서 데이터조회의 칼럼들을 파악할 수 있게 되어 그에 따라 성능을 고려한 데이터 ..
9일차- 데이터 모델의 성능 성능 데이터 모델링의 정의 데이터의 용량이 커질수록, 기업의 의사결정 속도가 빨라질수록 데이터를 처리하는 속도는 빨라야 한다. 이를 방해하는 요소중 하나는 SQL구문을 잘못 짜는것인데, 근본적으로 디자인이 잘못되어 SQL 구문을 잘 못 작성하도록 구성될 수밖에 없는 경우도 빈번하다. 성능이 저하되는 데이터 모델의 경우 크게 세 가지 경우가 있다. 1) 데이터 모델 구조. 2) 데이터가 대용량이 됨으로 인해 불가피하게 발생. 3) 인덱스 특성을 충분히 고려하지 않고 인덱스를 생성할때. 데이터 모델링을 할 때 어떤 작업 유형에 따라 성능 향상을 도모해야 하는지 목표를 분명하게 해야 한다. --> 성능데이터 모델링이란 데이터 베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 여러 성능과 관련된 사항이..
8일차-식별자 엔티티는 인스턴스들의 집합이라 배웠다. 이들을 구분할 수 있는 논리적인 이름이 있어야 하는데 이를 식별자 라고 부른다. 식별자란 하나의 엔티티에 구성되어 있는 여러 개의 속성 중에 엔티티를 대표할 수 있는 속성을 의미한다. 하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 한다. 식별자와 '키'를 헷갈리는 경우가 있는데 식별자라는 용어는 업무적으로 구분이 되는 정보로 논리 데이터 모델링 단계에서 사용하고 '키'는 데이터베이스 테이블에 접근을 위한 매개채로 물리 데이터 모델링 단계에서 사용한다. 그니까... 하는 역할은 비슷하단거 같다. 식별자 특징 주식별자인지 외부식별자인지에 따라 특성이 차이가 난다. 주식별자 특) 1) 유일성: 주식별자에 의해 엔티티내 모든 인스턴스들을 유일하게 구분한다. 2) ..
7일차-문제풀이 오우 ㅋㅋ 많이 틀렸네여 속성을 좀 오래전에 공부해서 그런가 ㅋㅋㅋㅋ 차근차근 다 봤습니다. 15. 속성에 대한 설명 1) 엔티티에 대한 자세하고 구체적인 정보를 나타낸다 2) 한개의 인스턴스는 한개의 속성값을 가져야한다. 3) 한개의 엔티티는 두개이상의 속성을 갖는다. --> 한개의 엔티티에는 둘이상의 인스턴스니까 두개이상의 속성은 보장된거지. 4) 속성도 집합이다. 16. 속성 설명. 이자는 계산된 값으로 파생속성이 맞지만, 이자율은 원래 가지고 있어야 하는 속성이므로 기본속성에 해당한다. 17. 데이터를 조회할 때 빠른 성능을 낼 수 있도록 하기 위해 원래 속성의 값을 계산하여 저장할 수 있게 만든 속성은 파생속성이다. 20. 데이터모델링 에서는 존재적 관계와 해우이에 의한 관계를 구분하는 표기법이..
7일차- 관계 관계를 사전적으로 정의하면 상호 연관성이 있는 상태로 말할 수 있다. 이를 데이터 모델에 대입해 정의하면 "엔티티의 인스턴스 사이 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태" 이다. 관계는 엔티티와 엔티티 간 연관성을 표현하기 때문에 엔티티의 정의에 따라 영향을 받기도 하고, 속성 정의 및 관계 정의에 따라 다양하게 변할 수 있다. 관계의 패어링 유의해야할 점은 관계는 엔티티 안에 인스턴스가 개별적으로 관계를 가지는 것 이고 이것의 집합을 관계로 표현한다는 것이다. 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔티티 사이에 두 개 이상의 관계가 형성될 수 있다. 관계의 패어링: 각각의 엔티티의 인스턴스들이 자신과 관련된 인스턴스들과의 어커런스(occurr..
6일차-속성 비트코인은 청산당했구요..벌써 몇번째 청산인지 모르겠네요 ㅋㅋㅋ;; 서류 붙었으니 면접준비 하면서 다시 SQLD공부 합니다 파이팅 해봐요. 속성이란 사물이나 개념이 어떤 것인지를 나타내고 그것을 다른 것과 구별하는 성질이라고 할 수 있다. 업무에서 필요로 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위 이다. 속성의 정의 1) 업무에서 필요로 한다. 2) 의미상 더 이상 분리되지 않는다. 3) 엔티티를 설명하고 인스턴스의 구성요소가 된다. 엔티티, 인스턴스와 속성, 속성값의 관계 엔티티에는 두 개 이상의 인스턴스가 존재하고 각각의 엔티티에는 고유의 성격을 표현하는 속성정보를 두 개 이상 갖는다. 엔티티를 구성하는 특징이 무엇인지 또한 각각의 인스턴스들은 어떤 성격의 데이터로 구성되는지를 파악하는 ..
5일차- 문제풀이 9~13 까지 엔티티 문제 풀었습니다.13번 틀림. 10- 엔티티는 반드시 속성을 가져야 한다. 11- 엔티티는 다른 엔티티와 관계를 가져야 한다. 그러나 공통코드, 통계성 엔티티는 관계를 생략할 수 있다. 이런경우 아니면 두개 이상의 엔티티가 관계를 가져야 한다는 말이네. 엔티티내의 인스턴스들도 마찬가지임. 오답노트 13- 엔티티 명명기준인데 공부할때 안중요하다 생각해서 요약에도 넣지 않고 그냥 쭉 훑고 갔었음.. 엔티티를 명명하는 일반적인 기준은 1) 현업 업무용어를 사용한다. 2) 가능하면 약어를 사용하지 않는다. 3) 단수명사를 사용한다. 4) 모든 엔티티를 통틀어 유일하게[ 이름이 부여돼야 한다. 5) 엔티티생성의미대로 이름을 부여한다.