💕IT 공부하기/데이터베이스 27

ER모델에 대해 알고계신가요? (3)

06. 관계와 관계 타입 (2) ► 1:1 관계 E1의 각 엔티티가 정확하게 E2의 한 엔티티와 연관되고, E2의 각 엔티티가 정확하게 E1의 한 엔티티와 연관되면 이 관계를 1:1 관계라고 합니다. 예를 들어, 각 사원에 대해 최대한 한 개의 PC가 있고 각 PC에 대해 최대한 한 명의 사원이 있다면 사원과 PC의 관계는 1:1 관계입니다. ► 1:N 관계 E1의 각 엔티티가 E2의 임의의 개수의 엔티티와 연관되고, E2의 각 엔티티는 정확하게 E1의 한 엔티티와 연관된다면 이 관계를 1:N 관계라고 합니다. 예를 들어, 각 사원에 대해 최대한 한 대의 PC가 있고 각 PC에 대해 여러 명의 사원들이 있으면 PC와 사원 간의 관계는 1:N 관계입니다. 1:N 관계는 실세계에서 가장 흔히 나타나는 유형입..

ER모델에 대해 알고계신가요? (2)

05. 약한 엔티티 타입 어떤 경우에는 엔티티 타입 내의 엔티티들이 자체적으로 갖고 있는 애트리뷰트들의 값에 의해서 고유하게 식별이 안됩니다. 예를 들어 회사에서 어떤 사원의 부양가족 이름은 다른 사원의 부양가족의 이름과 같을 수 있습니다. 한 가지 해결 방안은 회사의 사원들의 모든 부양가족에 대해서 고유한 번호를 부양하는 것입니다. 이런 고유한 번호는 데이터베이스 처리에 사용되지 않을 수 있습니다. 또 다른 해결 방안은 부양가족이 속한 사원의 번호를 부양가족의 이름과 결합하여 부양가족의 키로 정하는 것입니다. 한 사원의 부양가족 이름은 모두 다를 것이므로, 사원번호와 부양가족의 이름을 결합하면 모든 사원들의 부양가족들을 고유하게 식별할 수 있습니다. 부양가족의 이름처럼 한 사원에 속한 부양가족 내에서는..

ER모델에 대해 알고계신가요? (1)

01. ER모델 ER모델은 데이터베이스 설계를 용이하게 하기 위해서 P.P. Chen이 1976년에 제안하였습니다. 이 모델을 제안하게 된 주요 동기는 의미적으로 풍부한 데이터 모델을 제공하고, 개념들을 그래픽하게 나타낼 수 있으며, 네트워크 데이터 모델, 관계 데이터 모델, 엔티티 집합 모델의 좋은 특성들을 결합하기 위한 것입니다. Chen이 ER모델을 제안한 후에 많은 학자들이 이 모델을 강화시켰습니다. 현재는 EER(Enhanced Entity Relationship) 모델이 데이터베이스 설계 과정에 널리 사용되고 있습니다. ER모델은 물리적인 데이터베이스 설계의 효율성에 관심을 두지 않으면서 한 조직의 개념적 스키마를 설명하기 위해 사용됩니다. ER 모델은 개념적 설계를 위한 인기 있는 모델로서,..

데이터베이스 설계와 개요에 대하여

01. 데이터베이스 설계 데이터 모델링은 관계 DBMS 세계에서 가장 어렵고 가장 중요한 업무 중 하나입니다. 데이터 모델링을 잘못하면 조직체의 응용은 사용자의 요구를 만족시키지 못할 수 있으며, 신뢰할 수 없고, 데이터베이스에 쓸모없는 데이터를 채우게 됩니다. 매우 단순한 상황을 제외하고는 모델이 완전한 지식을 전달할 것으로 기대해서는 안되지만 훌륭한 모델은 실세계 상황을 합리적으로 이해할 수 있게 합니다. 한 조직체에 가용한 모든 상세한 데이터를 모델에 기록하는 것은 불가능하며, 바람직하지도 않습니다. 데이터베이스 설계는 미리 정의된 응용들의 모임을 위해서 조직체의 사용자들의 정보 요구를 수용하여 하나 이상의 데이터베이스의 논리적인 구조와 물리적인 구조를 설계하는 것입니다. 서로 충돌되는 요구들을 조..

트리거(trigger)와 주장(assertion) 그리고 내포된 SQL

저장된 데이터의 의미적 정확성을 보장하기 위해서, 테이블을 정의할 때 데이터베이스 스키마의 한 부분으로서 무결성 제약조건을 명시해야 합니다. 테이블 정의와 별도로 데이터베이스의 무결성을 시행하는 메커니즘인 트리거와 주장을 알아보겠습니다. 제약조건이 트리거보다 성능이 우수하고, 코딩이 불필요하며, 선언하고 수정하기가 용이하므로 가능하다면 제약조건을 사용하는 것이 좋습니다. 01. 트리거(trigger) 트리거는 명시된 이벤트(데이터베이스의 갱신)가 발생할 때마다 DBMS가 자동적으로 수행하는, 사용자가 정의하는 문(프로시저)이다. 트리거는 데이터베이스의 무결성을 유지하기 위한 일반적이고 강력한 도구이며, 테이블 정의 시 표현할 수 없는 기업의 비즈니스 규칙들을 시행하는 역할을 합니다. 무결성 제약조건을 유..