비투즈의 노트르담

전체 글 (58)

  1. 2014.09.11 블록으로 알기쉽게 공부하고 C로 바꿀 수 있는 WebC

    webC는 Blockly기반으로 만들어져 간편하게 블록모양을 이용해 코딩하고 C로 변환할 수 있는 웹언어이다. 우선 Blockly를 소개하자면 JavaScript기반으로 만들어진 언어로 MIT에서 제작한 "스크래치"와 유사하게 블록으로 코딩할 수 있는 언어이며, JavaScript/Dart/Python/XML 코드로 변환이 가능하다. blockly 주소 : https://blockly-demo.appspot.com/static/apps/code/index.html 구글 소개 및 기타 관련 게임 :http://bit.thdev.net/LqyTp1 또한 이를토대로 길찾기라던지 여러 게임도 제공된다. webC는 여기에서 기초학습용 block을 추리고 블록으로 만든 소스를 C언어로 바꿔준다. 그에 따라 매우 간..

  2. 2014.04.14 4/14 데이터베이스

    반정규화된 테이블 사례 - 과다 인덱스 생성 유도 인덱스 많을시. 정규화 통해 해결 두 개 테이블 조인할때 조인뷰 정의하면 좋다. b-tree 찾아보래 b-tree b+tree(오라클 외 제품) b*tree(오라클) 정규화를 하면 성능이 떨어지능경우도 있고 좋아지는경우가 있다. 반정규화(역정규화) 정식 데이터 모델링 기법! 반정규화 하는 이유(데이터 무결성이 깨질 수 있는 위험에도 하는이유) -조회시 디스크 I/O량 많아 성능저하. -경로멀어(join path) 성능저하.(여러번걸쳐 조인한다던지) -칼럼계산읽을때 성능저하 (유도속성 : 성적의 합계 같은거.) 유도속성 (읽자): http://blog.naver.com/hj161?Redirect=Log&logNo=121861014 반정규화 적용방법 : (무..

  3. 2014.04.14 데이터베이스 모델링 이해

    데이터 베이스 모델링 이해 데이터 모델과 성능 -성능 데이터 모델링 개요 -정규화 -반정규화 -대량 데이터 -데이터베이스 구조와 성능 -분산데이터베이스와 성능 -------------------------------------------------------------------------------- 데이터베이스 모델링 이해. 데이터 모델 : 데이터베이스의 설계적 기법 모델링의 3가지 관점.(데이터관점,상관관점,프로세스 관점) 데이터 모델링의 3가지 요소. 엔티티.속성.관계.식별자 -------------------------------------------------------------------------------- 모델 : 모형. 다양한 현상 일정 표기법 의해 표현한 모형.[커뮤니케이션을 위해..

webC는 Blockly기반으로 만들어져 간편하게 블록모양을 이용해 코딩하고 C로 변환할 수 있는 웹언어이다.

 

우선 Blockly를 소개하자면 JavaScript기반으로 만들어진 언어로 MIT에서 제작한 "스크래치"와 유사하게 블록으로 코딩할 수 있는 언어이며, JavaScript/Dart/Python/XML 코드로 변환이 가능하다.

 

blockly 주소 : https://blockly-demo.appspot.com/static/apps/code/index.html

구글 소개 및 기타 관련 게임 :http://bit.thdev.net/LqyTp1

 

또한 이를토대로 길찾기라던지 여러 게임도 제공된다.

 

webC는 여기에서 기초학습용 block을 추리고 블록으로 만든 소스를 C언어로 바꿔준다.

 

그에 따라 매우 간단하지만 사실 프로그래밍을 아예 모르는 사람들에게 약간 불편할 수도 있어 간단한 기능에 대해 소개하고자 한다.

 

webC주소 : http://hcilab.cju.ac.kr/blockly/apps/webc/index.html

 

 

 

1.메인화면으로 왼쪽에는 결과물 중간은 관련 메뉴를 선택하는 부분, 오른쪽은 블록을 제작하는 환경이다.

위에줄에서는 Blockly를 눌러 관련 자료를 볼 수 있고 code를 통해 C언어로 변환할 수 있다.

Run으로 블록코딩 실행 Reset으로 초기화할수 있다.

 

 

 

print 4 [] 은 4칸 공간에 []라는 (숫자)를 출력해준다. ex : print 4 "2" -> [    2]

print [] 공간지정없이 []라는 (숫자)를 출력해준다

clean screen : 왼쪽의 출력결과를 깨끗이 지워준다.

printline : 결과에서 한 줄을 내려간다 [엔터]

print "[]" : "[]"라는 (문자)를 출력해준다

print "[]" [] : "[]"라는 문자를 []번 만큼 출력해준다

ignore [] : ?

click console button : ?

keyboard input : 키보드로 입력한값이 적용된다.

random input : 임의의값이 적용된다.

 

 

 

 

if [] do : 만약에 []가 맞다면 do안에 있는 문장을 실행시킨다.

if [a] do [b] else [c] : 만약 a가 맞다면 b를 실행, 틀리면 c를 실행시킨다. 

         [] = [] : if옆에 들어가는 조건을 입력하는 구문으로 부등식과 등식을 넣을 수 있다.

 [a] and [b] : a와 b모두 성립하면이란 조건, or은 둘 중 하나라도 성립할시 조건이다.

not : 그 조건이 아니면이라는 부정의 의미이다.

true : 진실이면, false 거짓이면 이라는 조건. if문에 true를 넣을시 무조건 do실행 false를 집어넣을 시 else구문을 실행한다. [조건이 항상 참이고 거짓이기 때문에]

  

 

repeat [10] do [] : [10]번만큼 []구문을 반복해서 실행한다.

while [] do : []라는 조건에 성립할 때까지 계속 do[] 구문을 실행한다.

for [0] < i <[10] do : [0]부터 [10]까지 do[]구문이 실행되며 끝날때마다 i가 1씩증가한다. 

 

 

[] : 숫자를 입력할 수 있는 블록으로 앞에 같은모양으로 생긴 빈 공간에 집어넣을 수 있는 블록

[] + [] : 사칙연산을 할 수 있는 블록

change [item] by [1] : 방정식에서 x,y처럼 임의의 변수를 생성하고 그 값을 [1]로 변환

[] : 파란블록과 달리 자유롭게 사칙연산을 할 수 있는 블록 ex : 3+5*2라고 입력하면 13의값이 실행

random [1] to [100] 1에서 100사이의 임의의값 적용

 

init [arr1] [] : arr1이라는 이름의 []크기의 배열생성

ex : init arr1 [5]실행시 [][][][][]라는 공간 생성된다.

이를통해 [100][80][60][70][80]이라는 원하는 여러값들을 저장시킬수 있다.

init arr1 [] with [] : ?

arr1 [] : arr1배열의 []째 공간이란 뜻 [여기서 방번호는 0번부터 시작](0,1,2,3,4)

set arr1 [] to [] : []에서 [] arr1을 설정?

 

 

 

init arr2[] [] : 2차원배열로 가로 [] 세로 []만큼의 방공간을 만든다.

ex : init arr2 [2] [3]

[][][]

[][][]

라는 arr2공간이 생성된다.

 

 

 

 

 

 

 

 

사용할 시 단순 블록을 외워쓰지말고 기초영어단어니까 뜻을 이해하고 쓰면 블록의 용도를 확실히 이해하고 사용할 수 있다.

 

사실 blockly는 사용해본 적이 없고 webC도 거의 사용해 본적이 없다.

스크래치 기반 SVL을 통해 공부한 적이 있고 기초 블록만 몇개 써보고 설명서를 작성하여 틀린점과 누락된 점이 많을 수 있다.

 

만약 내 설명이 틀리거나 부족한 부분이 있으면 댓글 달아주시면 빠른시일내에 수정토록 하겠다.

 

 

반정규화된 테이블 사례 - 과다 인덱스 생성 유도

 

 

인덱스 많을시.

 

정규화 통해 해결

 

 

두 개 테이블 조인할때 조인뷰 정의하면 좋다.

 

b-tree 찾아보래

b-tree b+tree(오라클 외 제품) b*tree(오라클)

 

정규화를 하면 성능이 떨어지능경우도  있고 좋아지는경우가 있다.

 

반정규화(역정규화)

정식 데이터 모델링 기법!

반정규화 하는 이유(데이터 무결성이 깨질 수 있는 위험에도 하는이유)

-조회시 디스크 I/O량 많아 성능저하.

-경로멀어(join path) 성능저하.(여러번걸쳐 조인한다던지) 

-칼럼계산읽을때 성능저하  (유도속성 : 성적의 합계 같은거.)   

유도속성 (읽자): http://blog.naver.com/hj161?Redirect=Log&logNo=121861014

반정규화 적용방법 :

(무결성 깨질수 있으니 꼭해야되는지 검토!)

1.반정규화 대상인지 조사

2.다른 방법되는지 검토

3.반정규화 적용

 

 

데이터 베이스 모델링 이해

데이터 모델과 성능

-성능 데이터 모델링 개요

-정규화

-반정규화

-대량 데이터

-데이터베이스 구조와 성능

-분산데이터베이스와 성능

--------------------------------------------------------------------------------

 

데이터베이스 모델링 이해.

데이터 모델 : 데이터베이스의 설계적 기법

모델링의 3가지 관점.(데이터관점,상관관점,프로세스 관점)

데이터 모델링의 3가지 요소.

엔티티.속성.관계.식별자

--------------------------------------------------------------------------------

모델 : 모형. 다양한 현상 일정 표기법 의해 표현한 모형.[커뮤니케이션을 위해]

 

모델링 : 현실세계를 추상화,단순화,명확화하기 위해 일정한 표기법으로 표현한 기법

계획/분석/설계시 업무 분석과 설계 | 구축/운영시 변경과 관리 목적

 

관점 3가지

데이터관점 : 업무가 어떤데이터와관련있는지/데이터간 관계 무엇인지(What, Data) 

프로세스관점 : 업무 실제일 무엇인지 / 무엇을해야하는지(How,process)

데이터와 프로세스 상관관점 : 업무처리하는 방법에 따라 데이터가 받는 영향을 모델링하는 방법(Interaction)

 

데이터 모델링의 정의

정보시스템 구축. 해당 업무에 [1.어떤 데이터가 존재 2.업무가 필요로 하는 정보가 무엇]인지 분석하는 방법

데이터에 존재하는 업무규칙에 대해 참/거짓을 판별할수 있는 사실(사실명제)를 데이터에 접근하는 방법(How),사람(who),전산화하는 독립적 관점에서 명확히표현하는 추상화 기법 ?

실무적 : 업무에 필요한 데이터 -->시스템구축방법론(분석/설계)->정보시스템구축

 

모델링 하는 주 이유

1.업무구성 정보를 일정 표기법 표현 업무내용 정확하게 분석

2.분석모델로 DB생성해 개발 및 데이터관리에 사용

(DB구축 뿐 아니라 업무설명/분석하는 의미 가짐)

데이터모델링 역할

명세화하고.구조화된 틀 제공.문서화.추상화.상세수준 표현방법 제공

데이터모델링 중요성

-파급효과(Leverage)

-복잡한 정보요구사항 간결한 표현(Conciseness)

-데이터품질(Data Quailty)

 

파급효과 : 프로젝트 진행 중 데이터모델 변경 상황 발생 시 영향분석,실질적변경,전체시스템구축 위험요소 등 비용손실 커짐

간결한표현 : 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구

[데이터 정합성 유지할 수 있도록 함]

데이터 품질 : 데이터구조의 문제.(치유하기 불가능한 경우가 대부분)

-중복(Duplication),비유연성(Inflexibility),비일관성(Inconsistency)의 문제 해결

중복(같은정복저장안함)비유연성(데이터./프로세스변화로DB변화가능성줄임)

비일관성(상호연관관계명확한정의)

 

DB모델링 3단계

개념적 데이터 모델   추상적

논리적 데이터 모델  

물리적 데이터 모델   구체적

 

개념적 데이터 모델링 : (엔티티 중심 상위수준 데이터모델)

업무중심적이고 포괄적인 수준의 모델링.

전사적 데이터모델링

EA수립시 많이 이용

사용자 요구사항 분석(핵심엔터티,관계찾기/ERD생성.

전조직으로 이루어지면 (전사적 데이터모델Enterprise Data Model)

지원 : (데이터요구사항 발견지원. 시스템 어떻게 변형되야 할지 이해 유용)

논리적 데이터모델링 :

업무의구체적모습, 흐름에 따른 구체화된 업무중심 모델

key,속성,관계 등 정확하게 표현, 재사용성 높음

 

물리적 데이터 모델링 :

저장구조에 따른 테이블스페이스 등 고려

실제DB에 이식할 수 있도록 성능,저장 등 물리적 성격 고려

 

분석 (개념/논리데이터모델링)

설계 (물리적 데이터모델링)

개발 (DB구축,변경,관리)

테스트 (DB 튜닝)

전환/이행 (DB 전환)

 

three-schema architecture

데이터 모델링 3가지 관점 :[구조,독립성,사상]

구조 : 3단계 구성 외부단계/개념단계/내부단계

외부단계 외부스키마 : 사용자 개개인관점단계. 사용자마다 다른스키마구조 가짐

논리적 데이터독립성 : 개념스키마변경이 외부스키마영향않도록함.

논리구조변경이 응용프로그램에 영향없음

개념적단계 개념스키마 : 공통적 사항을 처리하는 통합된 뷰

물리적 데이터독립성 : 내부스키마변경이 외부/개념영향않도록지원.

저장장치 구조변경이 응용프로그램/개념스키마영향없음 

내부적단계 내부스키마 : 물리적으로 저장된 방법의 스키마

 

사상 : 상호독립적 개념을 연결시켜주는 다리역할

외부/개념적(논리적)사상 : 외부적뷰와 개념뷰 상호관련성 정의

개념/내부적(물리적)사상 : 개념적뷰와 DB상호관련성 정의

 

데이터 모델링 중요한 3가지 개념

3가지요소

엔터티,속성,관계

단/복수    복수                                    단수

어떤것    엔터티/인스턴스/어커런스    엔터티타입/엔터티

연관        관계                                    페어링

성격        속성                                       속성값

모델링 이해관계자

모델링 : 업무를 이해하고 분석하여 표현한다는 측면 중요

개발자,DBA,전문모델러,현업업무전문가 이해해야함.

 

ERD : 도식화된 그림+데이터흐름과 프로세스와 연관성 표기법/산출물

작업순서 : 엔터티그린다.적절하게배치한다.관계설정한다.관계명기술한다.관계차수기술.관계필수여부 기술

 

ERD 작업순서

엔터티 그린다.

적절하게 배치한다

관계설정한다

관계명기술한다

관계참여도(관계차수)기술

관계필수여부 기술

 

좋은 데이터 모델 요소

완전성 : 업무에필요한 모든 데이터 모델에 정의

중복배제 : 동일한 사실은 반드시 한번만 기록

업무규칙 : 데이터 모델과정 도출되는 수많은 업무규칙을 DB모델에 표현/모든

                사용자가 공유할수 있도록 제공

데이터재사용 : 데이터 통합성과 독립성에 대해 충분히 고려

의사소통 : 의사소통의 도구

통합성 : 여태까지 모든 데이터

 

엔터티 : 실체,개체. 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한집합적인것

 

엔터티 특징

식별이 가능해야함.

인스턴스의 집합이어야함.

업무프로세스에 의해 이용

반드시 속성있어야함

최소 한개이상의 관계있어야함.

업무에서 필요로 하는 정보여야함.

엔터티 분류

실체유형따라 구분. 발생시점 구분

유무형따른 구분

유형엔터티

개념엔터티

사건엔터티

발생시점 구분

기본엔터티 : 원래존재하는 정보. 타엔터티의 부모역할

중심엔터티 : 데이터 양 많이 발생 관계통해

행위엔터티 : 두개 이상의 부모 엔터티

 

속성 : 업무에서 필요로하는 인스턴스로 관리하고자하는 의미상더이상분리되지않은최소의 데이터단위

 

속성의특징

관리하고자하는 정보여야함

주식별자에의해 함수적종속성가져야함

한개의값

 

속성의 분류

기본속성

설계속성

파생속성

 

도메인

속성의명명

해당업무사용 이름

서술식속석명사용않음

약어제한

데이터모델에서유일성확보

관계 :상호연관성있는상태

관계인스턴스들과 관계어커런스로 참여하는 형태 관계 패어링.

 

연관관계 표현방법 실선

의존관계 표현 실선.

관계선택사양

선택참여경우 Foreignkey Null허용할수 있음.

 

식별자 : 여러 집합체 구분할수있는 구분자

논리데이터모델링(키) 물리데이터모델링(식별자)

유일성

최소성

불변성

존재성

 

식별자구분

대표성 여부(주,부식별자)

스스로생성여부(내부,외부식별자)

단일속성여부(단일식별자,복합식별자)

대체여부(본질식별자,인조식별자)

 

식별자 비식별자 모델링

관계분석->관계강약분석->자식테이블독립PK필요->SQL복잡도증가 개발생상성저하

(비식별자 관계설정고려)

 

식별자 : 강한연결,자식주식별자,실선

비식별자 :약한연결,자식일반속성,점선

 

데이터모델과 성능

성능 데이터 모델 정의

대용량됨으로 불가피한 성능저하. (성능향상 도모)

 

성능데이터 모델 수행시점 : ㅏㅅ전에.

 

데이터모델 고려사항

1.정규화정확히

2.용량산정

3.트랜잭션유형파악

4.반정규화수행

5.이력모델의조정,PK/FK조정,슈퍼/서브타임조정

6.성능관점

 

 

 

정규화 : 조회(성능향상저하) 나머지(성능향상)

Trade-off

반정규화 사례1.

사례2. 함수적종속관계

3.두개이상속성으로나열

 

반정규화 성능:

반정규화 대상조사

다른방법유도 검토

반정규화 적용

 

대량데이터 수평/수직분할

데이터모델완성

용량산정

트랜잭션처리패턴분석

칼럼단위/로우단위집중분석

데이터용량많을시 : 파티셔닝

칼럼많을시 : 1:1형태분리

성능 데이터모델링개요

정규화

반정규화

대량데이터 따른 성능

 

--------------------------------------------------------------------------------관련 영어

 a Hypothetical or stylized representation 가설적 또는 일정 양식에 맞춘 표현

   가상적인           양식화된  묘사

사건에 관한 양상(aspect)이나 관점(perpective)을 사람이나 그룹을 위하여 명확하게 하는것

파급효과(Leverage) 간결한 표현(Conciseness),데이터품질(Data quaility)

 

정합성 (무모순성) : 이론에 모순성이 없다

중복(Duplication),비유연성(Inflexibility),비일관성(Inconsistency)

형상화 : 형체 명확하지 않은것을 어떤 방법/매체로 구체적 명확한 형상으로 나타냄

1 2 3 4 5 6 7 8 ··· 20