본문 바로가기

전체 글

외부효과 현실에서 경제활동을 하다 보면 의도하지 않은 요인들이 영향을 미치는 경우가 많다. 대표적인 것이 외부효과(externality)이다. 한 경제주체의 경제행위가 시장을 통하지 않고 다른 경제주체의 경제활동에 영향을 미치는 것을 말한다. 한 경제주체의 행위가 다른 경제주체에 이로운 영향을 미치면 외부경제(external economy)라고 하고 반대로 해로움을 끼치면 외부비경제(external diseconomy)라고 한다. 경제 내의 자원이 효율적으로 배분되려면 이러한 외부효과가 자체적으로 해결되는 것이 바람직하지만 말처럼 쉽지는 않다. 이러한 외부비경제의 사례 중 하나는 공해이다. 공장이 공해물질을 내뿜으면 그것 때문에 피해를 보는 사람들이 생긴다. 공해로 인한 피해는 광범위하고 오랜 기간 지속되기 때문.. 더보기
Pivot 아래와 같이 년도별 잔고를 조회하면 아래와 같이 결과가 나오는 조회문이 있다고 보자. select Year, Balance from Account; Year Balance 2010 1000 2011 1200 2012 1100 2013 1400 그런데 왠지 마음에 들지 않는다, 위에서 아래로 연도별로 잔고가 나오는 결과를 왼쪽에서 부터 오른쪽으로 년도를 컬럼으로 하고 잔고를 그 년도에 값으로 표현하고 싶다. 2010 2011 2012 2013 1000 1200 1100 1400ㅣ 이럴 때 어떻게 하면 좋을까? 정답은 Pivot에 있다. Pivot은 A, B, C, D라는 컬럼이 있는데, 여기서 A라는 컬럼에 있는 값들이 다 다를때, 이 A 컬럼의 값을 조회 결과의 컬럼명이 되게 하고 나머지 B, C, D .. 더보기
순환적 관계(Recursive Relationship) 직원들 안에도 서열이나 역할있다. 상사는 이렇게 해라... 저렇게해라... 일찍 다녀라.. 그 일 다 마쳤냐... 등등 지시와 명령을 한다. 부하직원은 예 이렇게 했습니다... 저렇게 했습니다. 예 일찍 다니겠습니다. 예 곧 그 일 다 끝났니다. 등등 지시와 명령을 받는다. 이 둘에는 공통점이 있다. 직원이다. 직원이라는 개체 타입(Entity Type)에 개체이다. 이와 같이 같은 개체 타입에 속하는 개체가 서로 어떤 관계를 맺을 때 우리는 이를 두고 순환적 관계라 말한다. 늘 관계(Relationship)란 다른 개체(Entity)에서 발생하지만 그 개체가 동일한 개체 타입일 수 있는 것이다. 더보기
참여 제약 조건(Participation Constraints) 참여 제약 조건은 두 가지 유형으로 나눌 수 있다. 1. 전체 참여(Total participation) 2. 부분 참여(Partial participation) 1. 전체 참여(Total participation) A와 B라는 집합(Entity Set)이 있다. 둘은 관계(Relationship)를 맺고 있다. 혹은 둘은 관계에 참여 한다. 라고 할 때 개체 집합 내에 개별 개체 중 최소 하나 이상이 참여해야한다. 면 전체 참여라고 한다. 전체 참여는 ER Diagram에서 표현하면 두 줄선으로 개체 집합(Entity Set)과 관계 집합(Realtionship Set) 사이를 연결 시켜 준다. 2. 부분 참여(Partial participation) A와 B라는 집합(Entity Set)이 있다. 둘.. 더보기
데이터베이스 오브젝트(Database Object) 관계형 데이터베이스(RDBMS)의 데이터베이스 오브젝트(Object)는 무엇일까? 데이터를 저장하거나 참조(Reference하는 데 사용되는 데이터 구조를 말한다. 우리가 자주 다루는 테이블도 이 오브젝트에 해당하고 그 외에도 인덱스(index), 저장 프로 시저(Stored Procedure), 시퀀스(Sequence), 뷰(View) 등이 있다. 사용자가 임의로 새로운 Object type을 창조할 수 없다. 각자가 사용하는 RDBMS(Oracle, Sql Server, Maria)에서 제공하는 Object를 만들어 사용해야한다. 그럼 Object type과 Object instance를 구분해보자. Object type은 "테이블이나 인덱스는 무엇이다". "어떤 것이다." 같은 개념이다. 흔히 객체.. 더보기
IS-A Relationship 개체 간에 계층관계를 가지는 경우가 있다. 상위 계층과 하위 계층으로 나누어 지는데 상위 계층은 하위 계층보다 일반화된 개체이다. 하위 계층에 속한 개체는 보다 정교한 혹은 상세하게 표현된 개체이다. 이때 상위 개체를 Super class라고 하고 하위 개체를 Sub class라고 한다. 이 때 일반화(Generalization)란 bottom-up방식의 접근을 말한다. 이 말은 달리 말해 하위 계층에 있는 개체들을 조합하여 상위계층의 개체를 도출해 낸다.고 하면 될지.... 예를 들어 VIP고객 일반고객을 조합하고 고객이라는 추상화된 개체가 도출된다.... 또 정교하고 혹은 상세(Specialization하게 라는 표현을 썼었다. 이 상세화는 일반화의 반대 의미이다. top-down방식의 접근을 말하는.. 더보기
Minimum Cardinality와 Maximum Cardinality 차이 Minimum Cardinality는 관계에 참여하는 최소한의 개체 수이다. Maximum Cardinality는 괸계에 참여하는 최대한의 개체 수이다. 흔히 1:1, 1:N, M:N 관계에서 1, N, M은 관계에 참여하는 Maximum값을 의미한다. ER Diagram은 여기에 Minmum추가하여 관계 표현을 보완하였다. 표기 방법은 관계실선 위에 Mimum과 Maximum 값을 적어 준다. mimum값이 0이면 관계에 참여하는 개체가 없을 수 있다. maximum값이 *이면 임의의 수만큼 관계에 참여할 수 있음을 의미한다. Relationship (min1, max1) (min2, max2) 1:1 (0,1) (0,1) 1:N (0,*) (0,1) M:N (0,*) (0,*) 다시 말하지만 Mini.. 더보기
관계 타입의 유형 관계 타입(Relationship type)은 개체 타입들 간에 어떠한 형태의 관계를 맺고 있는지에 대한 것이다. 혹은 2개 이상의 개체들 간에 관계에 어떤 유형으로 참여하는지를 말한다. 여기서는 개체와 개체 타입을 구분해서 이해하면 좋겠다. Entity Type은 Entity의 속성을 모아놓은 것이고 Entity 실제 현실에 존재하는 Entity이다. 혹시 아래에 Unary Relationship은 1개의 개체 타입만 관계에 참여하는데 2개 이상의 개체들 간에 관계의 참여 유형을 말했다는 표현에 헷갈릴 수 있을 것 같아 미리 언급해 보았다. 관계 타입의 유형은 크게 Degree와 Cardinality에 따라 나눌 수 있다. # Degree로 나눠 본 유형 Degree of Relationship은 관계.. 더보기