ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 03.22 수업
    학교 수업 정리/데이터베이스 2023. 3. 24. 18:48

    데이터베이스 설계 방식에는 top-down과 bottom-up방식이 있다. 탑다운은 구조부터 설계한 후 데이터를 채우는 것이고 바텀업은 데이터를 먼저 그룹화해 테이블을 만들고 그것으로 구조를 만드는 것이다.

    데이터베이스 디자인은 4단계로 이루어진다.

    1) 사용자가 어떤 데이터를 필요로 하는지, 그것이 효과적이고 가능한 일인지, 어떤 연산이 필요한지 인터뷰를 통해 결정한다.

    2) 스키마를 디자인한다. 여기에는 entity의 타입, 관계, 제약조건이 포함된다. 데이터 저장과 구현에 관한 것도 자세히 정하고 전문가가 아닌 사람과의 소통도 필요하다. 하이레벨 모델인 ER을 사용해 진행.

    3) 논리적 디자인 단계로 ER을 mapping 하여 관계형으로 전환한다. SQL을 이용한 스키마 정의가 포함된다.

    4) 물리적인 서버와 같은 것들을 디자인한다. 또한 제한규칙과 같은 것들을 추가한다.

    크게 보면 데이터베이스 자체와 기능으로 나눌 수 있다. 그림 3.1 참조.

    ER 모델에서의 엔티티는 기본 블록. 실제 또는 개념적 존재하는 것. 어트리뷰트는 엔티티의 특성을 표현하기 위해서 사람이 정의한 것. 이것이 실제 테이블에 저장되는 정보이다. 엔티티가 이름이면 실제 저장되는 정보는 각각의 이름들. 어트리뷰트는 하나의 개체이거나 복합개체일 수 있다. 이름을 성, 이름으로 나누는 것과 같음. 나누면 테이블의 크기가 늘어나 부하가 늘어나지만 검색에 이점이 생기고 성을 뒤에 쓰는 경우를 막는 효과가 있는 등의 장점이 있다. 설계하면서 이런 점을 잘 생각해 보고 효율적으로 결정해야 한다. 복합개체는 여러 값으로 구성된다. 주소는 시, 군, 동 등의 정보가 함해진 형태. 데이터베이스는 데이터를 빨리 찾기 위해 가변길이 VAR로 해도 크기는 전부 할당한다. 따라서 전체크기를 적당하게 잡아야 한다.

    값이 고정되어 수정할 필요가 별로 없는 정보가 아닌 주기적으로 값이 바뀌는 정보들은 함수로 넣는 게 효율적이다.

    NULL은 두 가지 뜻이 있는데 not applicable은 해당 값을 가지고 있지 않아 비어있는 것이고 unknown은 실제 값이 존재하지만 입력이 안되어있는 경우와 실제 값이 없을 수도 있는 경우이다.

    엔티티 타입은 정수형, 실수형과 같은 것들. 같은 어트리뷰트들끼리 set을 구성. 엔티티 셋은 타입에 맞게 모은 데이터의 집합.

    key는 어트리뷰트에 포함되고 고유해서 각각을 식별 가능하게 한다. 이때 여러 정보를 합쳐 key로 이용할 수도 있는데 이때는 합쳐야만 key로 이용이 가능해야 함. 분리했는데 key이면 composite key 아님. key를 가지는 엔티티를 strong entity라 하며 안 가진 것을 weak entity라고 함.

    value set을 도메인이라고도 함.

    relationship은 최소 두 개의 엔티티가 관계를 가지는 것. Degree는 몇 개의 엔티티가 관련 있는지 나타냄. 2개면 binary, 3개면 ternary. 1대 1이면 멀티 벨류가 안 나오지만 1:N이면 멀티벨류가 나올 수 있으므로 안 나오게 설계하는 게 유리. N:M이면 무조건 나오니 테이블을 따로 만들어야 함. 테이블이 많아지면 join이 많아져 연산 횟수가 늘어남.

    role은 역할. 하나의 엔티티가 여러 관계를 가질 때 필수적으로 필요. 재귀적으로 구현되기도 함.

    total participation은 모든 엔티티가 관계를 가져야 하고 Partial participation은 일부만 가져도 된다. total은 ER모델에서 성 2개로 표시한다. 

    '학교 수업 정리 > 데이터베이스' 카테고리의 다른 글

    03.20 수업  (0) 2023.03.23
    03.15 수업  (0) 2023.03.16
    03.08 수업  (0) 2023.03.09
Designed by Tistory.